EDITAR: Debido a un error en Java 7 Update 45 no debe agregar Trusted-Library a su archivo de manifiesto. Simplemente agregue el nuevo atributo Caller-Allowable-Codebase. Consulte esta pregunta para obtener más información: Java applet manifest - Allow all Caller-Allowable-Codebase
Java 7 Update 21 se lanzó el 16 de abril de 2013 y provocó que nuestro applet comenzara a mostrar este cuadro de diálogo de advertencia. Por las notas de la versión: A partir de JDK 7u21, el código JavaScript que llama código dentro de un applet privilegiado se trata como código mixto y se generan cuadros de diálogo de advertencia si los archivos JAR firmados no están etiquetados con el atributo Trusted-Library.
Para solucionar este problema edite su manifiesto.mf archivo y añadir una línea como esta:
Trusted-Library: true
Usted debe tener mucho cuidado antes de hacer esto, sin embargo. Si su applet firmado se puede invocar desde javascript, un usuario malintencionado puede potencialmente hacer cosas dañinas en las computadoras de sus usuarios.
Una forma rápida de proteger su applet es evitar que se ejecute en otros sitios web. Haga esto poniendo código en el método init()
que se ve en getCodeBase().getHost()
y arroja una excepción si no coincide con su sitio.
Java 7 Update 25 introduce otra forma de limitar los sitios donde se puede ejecutar su applet. Se puede establecer el atributo CODEBASE en el archivo de manifiesto de esta manera:
Codebase: test.example.com www.example.com
Java 7 Actualización 45 (releated 16 de de octubre de 2013) introduce más cambios en el sistema de LiveConnect (Javascript-a-applet puente) que pueden causar otro aviso . Este artículo habla de los cambios 7u45: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45
Básicamente también querrá añadir lo siguiente a su archivo de manifiesto para evitar las indicaciones:
Caller-Allowable-Codebase: test.example.com www.example.com
Si usted está vendiendo un producto que incluye un applet y usted no sabe en qué dominios puede implementarse puede completar * aquí.
Agregando esto para referencia futura. Java 1.6u20 contiene una solución documentada como "advertencia de código mixto para class.getResource (" directory/") en 1.6.0_19". –
En algún lugar de este debería haber un mensaje que indique qué jarras o clases se consideran "sin firmar" ¿Cuál es el mensaje? seguridad: Istrusted: null false ?? – simpatico
por lo que vale, este problema estaba allí para una máquina en 1.6.0_20, luego se fue con 1.6.0_24, ahora está de vuelta para 1.6.0_25-b06. ¿Qué demonios es Sun? ambos nuestros frascos están firmados con el mismo certificado de la misma manera al mismo tiempo, no lo entiendo ... – jlarson