Java SecurityManager с настраиваемым файлом политики не работает должным образом ⇐ JAVA
Java SecurityManager с настраиваемым файлом политики не работает должным образом
Я пытаюсь понять, как работает SecurityManager, поэтому привел пример для его проверки. однако я получаю исключения
это файл класса
общественный класс FilePermissionChecker2 { public static void main(String[] args) { Строка filePath = "c:\\file.txt"; Разрешение разрешения = новый FilePermission (filePath, «чтение, запись»); PermissionCollection perms = perm.newPermissionCollection(); perms.add(пермь); логическое значение hasPermission = AccessController.doPrivileged(new PrivilegedAction() { @Override общественный логический запуск() { // Здесь проверяем права доступа к файлу Файл файл = новый файл (filePath); if (file.exists() && file.canRead() && file.canWrite()) { вернуть истину; } еще { вернуть ложь; } } }, новый AccessControlContext( новый ЗащитныйДомен[]{ новый ProtectionDomain(ноль, разрешения) } )); если (hasPermission) { System.out.println("У вас есть необходимые права доступа к файлам."); } еще { System.out.println("У вас нет необходимых прав доступа к файлу."); } } }
это мой собственный файл политики
предоставить { разрешение java.io.FilePermission "c:\\file.txt", "чтение, запись"; }; а это мои параметры виртуальной машины, которые я добавил в intellij в качестве параметра параметров виртуальной машины -Djava.security.manager -Djava.security.policy=...pathToPolicy...\policy\custom.policy
Я ожидаю, что этот код будет работать. Я пробовал разные варианты, но все равно получаю это исключение. Исключение в потоке "main" java.security.AccessControlException: доступ запрещен ("java.io.FilePermission" "c:\file.txt" "read")
кто-нибудь знает, что не так?
[*]Я пробовал разные комбинации в специальной политике. [*]Я пробовал разные комбинации в FilePermissions. [*]Я ожидаю, что SecurityManager проверит, какие у меня есть разрешения, на основе пользовательской политики, а FilePermission добавит пересечение этих разрешений. это означает, что если в политике есть чтение и запись, а в FilePermission — чтение и запись, я смогу читать и писать. но если бы в FilePermission было бы только чтение, у меня были бы только права на чтение.
Я пытаюсь понять, как работает SecurityManager, поэтому привел пример для его проверки. однако я получаю исключения
это файл класса
общественный класс FilePermissionChecker2 { public static void main(String[] args) { Строка filePath = "c:\\file.txt"; Разрешение разрешения = новый FilePermission (filePath, «чтение, запись»); PermissionCollection perms = perm.newPermissionCollection(); perms.add(пермь); логическое значение hasPermission = AccessController.doPrivileged(new PrivilegedAction() { @Override общественный логический запуск() { // Здесь проверяем права доступа к файлу Файл файл = новый файл (filePath); if (file.exists() && file.canRead() && file.canWrite()) { вернуть истину; } еще { вернуть ложь; } } }, новый AccessControlContext( новый ЗащитныйДомен[]{ новый ProtectionDomain(ноль, разрешения) } )); если (hasPermission) { System.out.println("У вас есть необходимые права доступа к файлам."); } еще { System.out.println("У вас нет необходимых прав доступа к файлу."); } } }
это мой собственный файл политики
предоставить { разрешение java.io.FilePermission "c:\\file.txt", "чтение, запись"; }; а это мои параметры виртуальной машины, которые я добавил в intellij в качестве параметра параметров виртуальной машины -Djava.security.manager -Djava.security.policy=...pathToPolicy...\policy\custom.policy
Я ожидаю, что этот код будет работать. Я пробовал разные варианты, но все равно получаю это исключение. Исключение в потоке "main" java.security.AccessControlException: доступ запрещен ("java.io.FilePermission" "c:\file.txt" "read")
кто-нибудь знает, что не так?
[*]Я пробовал разные комбинации в специальной политике. [*]Я пробовал разные комбинации в FilePermissions. [*]Я ожидаю, что SecurityManager проверит, какие у меня есть разрешения, на основе пользовательской политики, а FilePermission добавит пересечение этих разрешений. это означает, что если в политике есть чтение и запись, а в FilePermission — чтение и запись, я смогу читать и писать. но если бы в FilePermission было бы только чтение, у меня были бы только права на чтение.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Каковы альтернативы SecurityManager для изолирования ненадежного кода в Java?
Anonymous » » в форуме JAVA - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Каковы альтернативы SecurityManager для нерешенного кода с песочницей в Java?
Anonymous » » в форуме JAVA - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Каковы альтернативы SecurityManager для нерешенного кода с песочницей в Java?
Anonymous » » в форуме JAVA - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Объявление участков с помощью политики (политики разрешений) в HTML Meta Tag
Anonymous » » в форуме Html - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-