Апплет 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 поможет?

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

Ответы на вопрос(2)

Ваш ответ на вопрос