Может ли JApplet
использовать JFileChooser
, чтобы пользователь мог выбрать файл на своем жестком диске? Или это нарушит безопасность Java-апплета? (Я предполагаю, что используются параметры безопасности по умолчанию. Я не хочу, чтобы мои пользователи предоставили мне дополнительные разрешения.)Использование JFileChooser в JApplet
ответ
This thread указывает, что вам необходимо подписать цифровой подписью ваш апплет до того, как разрешен JFileChooser
.
В этом случае (с использованием настроек по умолчанию) вы правы, менеджер безопасности по умолчанию не разрешает доступ к локальным файлам.
Возможно, вам придется использовать PrivilegedAction, чтобы читать что-либо с жесткого диска пользователя. Так же, как @mmyers сказал, что вам придется подписать и ваш апплет.
Так что ваш ответ - да, я сделал это раньше, поэтому я знаю, что это можно сделать.
Как уже упоминалось, вам необходимо подписать ваш апплет, что приведет к «нечеткому предупреждению о безопасности», когда пользователю будет представлен апплет. Когда пользователь принимает запуск этого апплета, апплет получает полный доступ и функционирует как обычное приложение с очевидными последствиями для безопасности. Я в той же дилемме, касающейся веб-приложения, над которым я работаю, и еще не уверен, что он будет развернут.
В качестве альтернативы вы можете использовать встроенный файловый браузер в веб-браузере и возвращать содержимое файла с вашего сервера, если работаете с меньшими файлами.
Кроме того, некоторые меры безопасности, которые вы можете сделать в отношении подписанного апплета:
Проверка происхождения кода апплета.
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;
, что ссылка сломана. и ни обратный путь, ни кеш Google не имеют копии Я вернусь сюда, если найду что-нибудь – 2011-08-05 02:24:52