Java SecurityManager с настраиваемым файлом политики не работает должным образомJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java SecurityManager с настраиваемым файлом политики не работает должным образом

Сообщение Anonymous »


Я пытаюсь понять, как работает 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 было бы только чтение, у меня были бы только права на чтение.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»