Блокируйте некоторые разрешения и предоставьте другие разрешения в политике безопасности 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. Таким образом, вам необходимо явно указать все разрешения, которые вы хотите предоставить вашему приложению.

Другие вопросы по тегам