Блокируйте некоторые разрешения и предоставьте другие разрешения в политике безопасности Java.
Я хочу реализовать файл политики безопасности следующим образом:
- Ограничьте доступ ко всем файлам, кроме файлов в 3 каталогах, т. Е. Если код обращается к файлам из этих 3 каталогов, он должен быть разрешен, но доступ к файлам для любого другого каталога ограничен.
- Предоставьте все остальные разрешения для базы кода.
Как я могу приступить к созданию файла политики для этого требования.
1 ответ
Решение
Вам нужно создать следующий файл политики (yourPolicy.policy):
grant codeBase "file:/location_of_your_code/-" {
permission java.io.FilePermission "/tmp/f1/*", "read, write";
permission java.io.FilePermission "/tmp/f2/*", "read, write";
permission java.io.FilePermission "/tmp/f3/*", "read, write";
};
И запустите ваш код со следующими аргументами:
java -Djava.security.manager -Djava.security.policy = yourPolicy.policy YourClassName
Это ограничит доступ вашей Java-программы только к этим трем папкам.
Что касается требования "предоставить все другие разрешения", то кажется, что вы не можете предоставить все разрешения и переопределить некоторые конкретные разрешения (предоставить доступ только к трем папкам), используя синтаксис политики Java. Таким образом, вам необходимо явно указать все разрешения, которые вы хотите предоставить вашему приложению.