Использование JFileChooser в JApplet - PullRequest
5 голосов
/ 25 октября 2008

Может ли JApplet использовать JFileChooser, чтобы пользователь мог выбрать файл на своем жестком диске? Или это нарушит безопасность Java-апплета? (Я предполагаю, что используются настройки безопасности по умолчанию. Я не хочу просить пользователей предоставить мне дополнительные разрешения.)

Ответы [ 4 ]

3 голосов
/ 25 октября 2008

В этой теме указано, что вам необходимо подписать апплет цифровой подписью, прежде чем разрешить JFileChooser.

2 голосов
/ 26 октября 2008

Как уже упоминалось, вам необходимо подписать свой апплет, что приводит к «расплывчатому предупреждению безопасности», когда пользователю предоставляется апплет. Когда пользователь соглашается запустить этот апплет, апплет получает полный доступ и функционирует как обычное приложение с очевидными последствиями для безопасности. Я сталкиваюсь с той же дилеммой в отношении веб-приложения, над которым я работаю, и пока не уверен, будет ли оно развернуто.

В качестве альтернативы вы можете использовать встроенный браузер файлов в веб-браузере и возвращать содержимое файла с вашего сервера, если вы работаете с файлами меньшего размера.

Кроме того, некоторые меры безопасности, которые вы можете предпринять в отношении подписанного апплета:

  • Проверка источника кода апплета.

    URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation();
    if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false)
       return false;
    
  • Проверка базового URL-адреса, с которого был запущен апплет.

    URL documentUrl = this.getDocumentBase(); 
    if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false)
       return false;
    
1 голос
/ 25 октября 2008

Возможно, вам придется использовать PrivilegedAction для чтения чего-либо с жесткого диска пользователя. Точно так же, как @mmyers сказал, что вы также должны подписать свой апплет.

Итак, ваш ответ - да, я делал это раньше, поэтому я знаю, что это можно сделать.

1 голос
/ 25 октября 2008

В этом случае (при использовании настроек по умолчанию) вы правы, менеджер безопасности по умолчанию не разрешает доступ к локальным файлам.

...