Аплет Java не может открывать файлы в Safari 7 (Mac OS X 10.9)

У нас есть веб-приложение, которое использует Java-апплет для управления файлами на локальном диске. Мы разрабатываем его довольно долго и уже знаем все типы проблем, которые могут возникнуть у апплета с современными ОС и браузерами, а также с последними версиями Java и новыми ограничениями безопасности.

Вчера Apple выпустила новую Mac OS 10.9 Mavericks с новым браузером Safari (7.0). Я протестировал наше веб-приложение в Safari 7 / Mac OS X 10.9 и обнаружил, что Safari 7 (возможно?) Блокирует доступ к локальным файлам из Java-апплета.

Хотя апплет (подписанный действующим сертификатом Thawte и выполненный со всеми требованиями безопасности, специфичными для Java 7u45) работает в неограниченном режиме с полным доступом к локальной файловой системе (это указано в запросе безопасности Java), при попытке доступа к локальному файлу он перехватывает исключение fileNotFoundException :

java.io.FileNotFoundException: /Users/yury/Pictures/Paris 2012/L1050258.jpg (Operation not permitted)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at com.trackntag.a.v.a(Unknown Source)

Кроме того, при открытии диалогового окна открытия файла Java из апплета файлы не отображаются, а папки в селекторе папок не имеют значков (обычно они должны быть). Когда вы возвращаетесь в корневую папку, вы можете видеть папки верхнего уровня (bin, cores, dev, home и т. Д.), Но не можете просматривать их.

У апплета есть доступ к локальным файлам в последней версии Firefox 24 для Mac на том же компьютере (Java 7u45, Mac OS X 10.9). То же самое с Safari 6 и Mac OS X 10.8.5, не говоря уже о машинах Linux и Windows в различных конфигурациях: нет проблем с доступом к локальным файлам.

Имея все вышесказанное, я должен сделать вывод, что мы столкнулись с проблемой, характерной для Safari 7.

Есть ли у вас идеи по этому поводу? Приветствуются любые мысли.

Ура, Юрий

РЕДАКТИРОВАТЬ (ответ): в Safari 7 есть новый параметр безопасности: безопасный / небезопасный режим (я думаю, это только для подключаемого модуля Java). Вы можете разрешить плагину Java работать в небезопасном режиме для отдельных сайтов или для всех сайтов. В небезопасном режиме апплеты будут иметь неограниченный доступ к локальной файловой системе.

Похоже, что этот параметр безопасности работает поверх собственных настроек безопасности Java (ограниченный / неограниченный доступ).

Этот параметр доступен в настройках Safari / вкладке «Безопасность» / «Интернет-плагины»: управление настройками веб-сайта (затем выберите плагин Java).

Итак, как только я уже ответил на свой исходный вопрос, я бы предпочел его перефразировать: можно ли установить небезопасный режим или переопределить безопасный режим для определенного веб-сайта / URL-адреса, не прося пользователя установить этот параметр безопасности? Может, поможет что-то вроде сертификата разработчика Apple?

Спасибо еще раз!


person JetLizard    schedule 23.10.2013    source источник
comment
Замечательно, ваш комментарий EDIT исправил это для меня. Спасибо за работу с ногами.   -  person David Clarke    schedule 30.10.2013


Ответы (2)


Сегодня у меня была аналогичная проблема с другим Java-приложением. Я думаю, вам может потребоваться добавить свое приложение в список «Разрешить приложения ниже ...» в этом диалоговом окне (System Prefs -> Security & Privacy -> Accessibility):

введите описание изображения здесь

person Paul R    schedule 23.10.2013
comment
Спасибо, это хорошая идея, точно так и будет выглядеть. Кстати, в моем случае причина кроется в новой настройке безопасности, специфичной для Safari 7 (я обновил свой исходный вопрос с более подробной информацией). Но, надеюсь, если ваш подход будет работать, он сможет переопределить этот параметр без необходимости для пользователя изменять этот параметр безопасности вручную. - person JetLizard; 23.10.2013
comment
Хорошо - я думаю, что, возможно, немного неправильно понял вопрос, но, надеюсь, эта информация может быть полезна кому-то еще в будущем. - person Paul R; 23.10.2013
comment
Аналогичная проблема в Safari 6.1.1 в OSX 10.8.5. В этом случае он не будет exec () без настройки небезопасного режима. Большое спасибо за публикацию исправления! - person Mark Phillips; 06.02.2014

Для Safari 11:

  1. перейдите в Настройки Safari-> Сайты-> Плагины и выберите Java.
  2. справа вы можете увидеть список «Разрешить веб-сайтам использовать этот плагин с настройками ниже»
  3. теперь выберите веб-сайт
  4. нажмите и удерживайте кнопку «Option», а затем выберите три варианта («Спросить», «Выкл.», «Вкл.»), вы увидите дополнительную опцию «Запуск в безопасном режиме» - снимите этот флажок.

введите здесь описание изображения

person fycth    schedule 19.12.2017