доступ запрещен, хотя я указал policy.url в java.security - PullRequest
1 голос
/ 10 сентября 2010

Я читаю учебник по безопасности Java от Oracle.(http://download.oracle.com/javase/tutorial/security/toolsign/rstep4.html)

Я дублирую все файлы и все из учебника в основном.

Я могу запустить файл с менеджером безопасности, используя следующий подход в Unix:

java -Djava.security.manager -Djava.security.policy=recvPolicy -cp sCount.jar Count ../../test

Но когда я пытаюсь указать новый policy.url в файле java.security, например:

policy.url.1=file:${java.home}/lib/security/java.policy
policy.url.2=file:${user.home}/.java.policy
policy.url.3=file:/home/myhome/SigningTest/recvPolicy

, при запуске я выдаю исключение:

java -Djava.security.manager -cp sCount.jar Count ../../test

Исключением является следующее:

Exception in thread "main" java.security.AccessControlException: access denied (java.io.FilePermission ../../test read)
 at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
 at java.security.AccessController.checkPermission(AccessController.java:546)
 at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
 at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
 at java.io.FileInputStream.<init>(FileInputStream.java:100)
 at java.io.FileInputStream.<init>(FileInputStream.java:66)
 at Count.main(Count.java:17)

спасибо за отзыв

1 Ответ

2 голосов
/ 10 сентября 2010

Хорошо, я быстро проверил это, и оно работает для меня. Таким образом, единственное, что может вызвать эту проблему (я думаю), это то, что у вас есть два jdks, установленных на вашем Unix Box. Поэтому убедитесь, что «java», который вы используете для выполнения командной строки, - это та же версия, чью версию java.security вы изменили.

Файл безопасности Sun Java по умолчанию 6 (если вы используете Ubuntu) находится по адресу:

/etc/java-6-sun/security/java.security

Убедитесь, что вы редактируете правильную версию java.security

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...