У меня есть апплет, который подписывает файл с помощью сертификата с смарт-карты, что означает несколько дополнительных разрешений, необходимых для его работы: загрузка .dll как файла на локальном компьютере, создание файлов temp и т. Д. .Апплет AccessControlException только в «бизнес-методе»
Все задействованные банки подписаны и запущены как Java Web Start.
Я считаю запутанным, что когда полная логика вызывается из Init() метод, все работает отлично:
public void init() {
try {
File directory = new File("C:/Temp");
deployPKCS11Library(directory);
testFullCycleOnApplet("C:/somefile.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
Если я возьму testFullCycleOnApplet
из моего метода инициализации и запустить его на кнопку мыши после инициализации, Я получу:
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.io.tmpdir" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)...
Есть ли метод init имеет больше прав для выполнения ограниченного материала? В JNLP файле я поставил
<security>
<all-permissions />
</security>
Добро пожаловать в Переполнение стека! Этот сайт посвящен многим языкам программирования. Добавьте подходящий язык, фреймворк или тег технологии на свои вопросы, чтобы получить соответствующие ответы. – Artemix