#java #security #applet
#java #Безопасность #апплет
Вопрос:
Я разрабатываю JAVA-апплет, который требует доступа на чтение и запись к папке. Когда я добавляю следующую запись в файл java.policy в папке JRE, это работает:
permission java.io.FilePermission "${user.home}${/}logtest${/}-", "read, write";
Однако, если я добавлю запись в файл .java.policy в домашнем каталоге пользователей, это не сработает.
При дальнейшем исследовании я добавляю другой файл политики mytest.policy, содержащий точно такое же разрешение, указанное выше, и модифицированный файл java.security с:
policy.url.1=file:${java.home}/lib/security/java.policy
policy.url.2=file:${user.home}/.java.policy
policy.url.3=file:${user.home}/mytest.policy
Разрешения успешно применены.
Кто-нибудь знает, почему записи разрешений .java.policy не работают?
Комментарии:
1. «Кто-нибудь знает, почему записи разрешений .java.policy не работают?» Мне трудно понять, почему игнорируются файлы политики. В конце концов.. «Я разрабатываю JAVA-апплет ..» апплет должен быть подписан цифровой подписью перед развертыванием другим пользователям, так почему бы не начать сейчас? Кстати: см. Раздел Поддержка плагинов Java устарела и переходит на веб-сайт без плагинов .
2. @AndrewThompson Для проекта, над которым я работаю, требуется апплет, я знаю, что апплеты находятся на выходе. Апплет подписан (самоподписан), но это все еще не работает, поэтому я также использую файлы политики. Тем не менее остается вопрос, почему права доступа к файлу .java.policy не работают, но работают, если одни и те же записи добавляются либо в java.policy, либо в пользовательский файл политики.
3. «Апплет подписан (самоподписан) ..» JRE больше не будет принимать самонастраивающиеся сертификаты. Они не стоят тех битов, на которых они написаны.
4. @AndrewThompson ХОРОШО, это хороший момент в отношении самозаверяющих сертификатов.
Ответ №1:
Попробуйте отредактировать файл C:UsersUSERNAMEAppDataLocalLowSunJavaDeploymentdeployment.properties и добавьте в файл следующую строку: deployment.security.use.user.home.java.policy=true