java macos safari applet filenotfoundexception

El applet de Java no puede abrir archivos en Safari 7(Mac OS X 10.9)



macos filenotfoundexception (2)

Tenemos una aplicación web que utiliza el applet de Java para manipular archivos en el disco local. Lo desarrollamos desde hace bastante tiempo y ya conocemos todos los tipos con problemas que un applet puede tener con los navegadores y sistemas operativos modernos y las últimas versiones de Java y las nuevas restricciones de seguridad.

Ayer, Apple lanzó su nuevo Mac OS 10.9 Mavericks con el nuevo navegador Safari (7.0). Probé nuestra aplicación web en Safari 7 / Mac OS X 10.9 solo para descubrir que Safari 7 (¿probablemente?) Bloquea el acceso a los archivos locales desde el applet de Java.

Aunque el applet (firmado con certificado Thawte válido y con todos los requisitos de seguridad específicos de Java 7u45 cumplidos) se ejecuta en modo no restringido con acceso completo al sistema de archivos local (la solicitud de seguridad de Java dice eso), al intentar acceder al archivo local detecta 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)

Además, al abrir el diálogo Abrir archivo Java desde el applet, no muestra ningún archivo y las carpetas en el selector de carpetas no tienen iconos (normalmente deberían tenerlos). Cuando recorre la carpeta raíz, puede ver las carpetas de nivel superior (bin, cores, dev, inicio, etc.), pero no puede buscarlas.

El applet tiene acceso a archivos locales con la última versión de Firefox 24 para Mac, en la misma máquina (Java 7u45, Mac OS X 10.9). Lo mismo con Safari 6 y Mac OS X 10.8.5, sin mencionar las máquinas Linux y Windows en varias configuraciones: no hay problemas para acceder a los archivos locales.

Teniendo todo lo anterior, debo concluir que hemos encontrado el problema específico de Safari 7.

¿Tienes alguna idea sobre este tema? Cualquier idea es grandemente apreciada.

Saludos, Yury

EDITAR (Respuesta): en Safari 7 hay una nueva configuración de seguridad: modo seguro / inseguro (creo que es solo para el complemento de Java). Puede permitir que el complemento de Java funcione en modo inseguro, ya sea para sitios web individuales o para todos los sitios. En el modo inseguro, los applets tendrán acceso sin restricciones al sistema de archivos local.

Parece que esta configuración de seguridad funciona sobre la configuración de seguridad propia de Java (acceso restringido / sin restricciones).

Esta configuración está disponible a través de las preferencias de Safari / pestaña Seguridad / complementos de Internet: administre la configuración del sitio web (luego seleccione el complemento de Java).

Así que una vez que ya contesté mi propia pregunta original, prefiero reformularla: ¿es posible establecer el modo inseguro o anular el modo seguro para un sitio web / URL específico sin pedirle al usuario que establezca esta preferencia de seguridad? Tal vez algo como el certificado de desarrollador de Apple ayudaría?

¡Gracias de nuevo!


Para Safari 11:

  1. vaya a Preferencias de Safari-> Sitios web-> Complementos, y seleccione Java
  2. en el lado derecho, puede ver la lista de "Permitir que los sitios web utilicen este complemento con la configuración a continuación"
  3. ahora selecciona el sitio web
  4. mantenga presionado el botón Opción y luego haga clic en las tres opciones (Preguntar, Desactivar, Activar), verá la opción adicional ''Ejecutar en modo seguro'' - desmarque esta opción.


Tuve un problema similar con otra aplicación de Java hoy. Creo que es posible que deba agregar su aplicación a la lista "Permitir las aplicaciones a continuación ..." en este cuadro de diálogo ( System Prefs -> Security & Privacy -> Accessibility ):