2016-01-16 8 views
1

Я создал Java-апплет для электронной подписи. Апплет работает нормально и отлично работает, пока я бегу на ide (intelliJ). Но когда я развернул проект в .jar-файл и попытался запустить в браузере (firefox), я получил некоторую ошибку, заявив, что .jar не доверен. Затем я сделал несколько исследований и подписал свой апплет с jarsigner. Я follewed эти шаги:Подписанный Java-апплет доступ запрещен java.io.FilePermission читать


  • Keytool -genkey -keyalg -alias MyCert RSA

  • Keytool -certreq -alias MyCert

  • Jarsigner C: \ TestApplet.jar MyCert

также пробовал команды на веб-сайте oracle. link here


После того как я подписал моя ошибка апплет ушел, и я мог бы запустить мой апплет. Но когда i попытаться подписать файл, я получил сообщение об ошибке, заявив, что у апплета нет разрешения на доступ к папке хранилища сертификатов. Ошибка:

java.security.AccessControlException: доступ запрещен ("java.io.FilePermission" "C: \ Users \ ChooseClick.sertifikadeposu" "читать")

+0

Исправить. После обнаружения многих уязвимостей безопасности апплеты (даже подписанные апплеты) не получили разрешения на доступ к папке хранилища сертификатов. –

+0

Так что у меня есть все, что нужно делать. Возможно, я смогу установить более низкую версию java? :( –

+0

Не используйте апплеты. Вы можете установить более низкую версию firefox, но тогда это уязвимо для использования. –

ответ

0

Я нашел решение. Чтобы получить доступ к файлам или любого другого ограниченного действия на Java, вы должны использовать prilivaged блоки:

AccessController.doPrivileged(new PrivilegedAction() { 
    public Object run() { 
     //actions that need permission goes here 

     return null; 
    } 
    }); 

вы можете использовать этот блок в любой функции.