Апплет безопасности - PullRequest
0 голосов
/ 01 мая 2011

Я встроил апплет в HTML-страницу, которая обращается к каталогу файлов пользователя.Его подписано.Когда я пишу код внутри функции init, тогда он работает очень хорошо, но когда я пишу этот код внутри метода и вызываю его с помощью Javascript, тогда он отправляет мне исключение безопасности.У вас есть идеи, как я могу решить эту проблему?

public class App extends javax.swing.JApplet {

@Override
public void init() {


 }

public void callMethod(){
    File file = new File("D:/test.txt");
    if(!file.exists()){
        try {
            file.createNewFile();
        } catch (IOException ex) {
            Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 }

}


Javascript:  
    window.document.applets[0].callMethod();

Ответы [ 2 ]

2 голосов
/ 01 мая 2011

Чтобы быть доверенным, каждый кадр в стеке должен быть учтен.Как только JavaScript находится в миксе, это перестает иметь место.

Чтобы исправить это, оберните доверенный код методом AccessController.doPrivileged().См. JavaDocs для примера.

2 голосов
/ 01 мая 2011

Посмотрите, могут ли ответы на этот очень похожий вопрос помочь вам: подписанный апплет дает AccessControlException: доступ запрещен при вызове из javascript

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