Подтвердить что ты не робот

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, core, dev, home и т.д.), Но вы не можете просматривать их.

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

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

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

Cheers, Юрий

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

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

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

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

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

4b9b3361

Ответ 1

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

enter image description here

Ответ 2

Для Safari 11:

  • перейдите в Настройки Safari- > Веб-сайты- > Плагины и выберите Java
  • с правой стороны вы можете увидеть список "Разрешить веб-сайтам использовать этот плагин с настройки ниже
  • теперь выберите веб-сайт
  • нажмите и удерживайте кнопку Option, а затем выберите три варианта (Ask, Off, On), вы увидите дополнительную опцию "Run in safe mode" - отмените проверку этой опции.

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