java.lang.SecurityException: los archivos de política de jurisdicción no están firmados por un firmante de confianza
jsse (4)
En lugar de mezclar versiones de tiempo de ejecución y de archivo de política, debe usar los archivos de política para Java 7.
Al trabajar en un problema diferente (relacionado con RMI), actualicé la "carpeta de seguridad" del sistema con los archivos de política de "fuerza ilimitada" y ahora mi aplicación falla de una manera diferente. Obtengo un volcado de pila largo, del cual los siguientes bits parecen pertinentes:
Exception in thread "main" java.lang.ExceptionInInitializerError
[...crop...]
Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:86)
... 17 more
Caused by: java.lang.SecurityException: The jurisdiction policy files are not signed by a trusted signer!
[...crop...]
Um, WTF? El ÚNICO cambio fue que moví los archivos del orignal jar a un lado y agregué los ilimitados en $ JAVA_HOME / lib / security. Ese directorio ahora se ve así:
$ ls
blacklist javaws.policy trusted.libraries
cacerts local_policy.jar US_export_policy.jar
java.policy local_policy.jar.strong US_export_policy.jar.strong
java.security local_policy.jar.unlimited US_export_policy.jar.unlimited
Por supuesto, las versiones .strong e .unlimited están ahí, así que puedo volver rápidamente.
Las instrucciones eran cortas y sencillas, y parece que SÓLO prevén la sustitución de estos dos archivos (local_policy.jar y US_exportpolicy.jar).
¿Que más hay que hacer?
Tenga en cuenta que las versiones de java y los archivos de políticas son las más recientes hasta la fecha: 1.7.0_03 y jce_policy-6, respectivamente.
PD: el artículo de título similar, que se encuentra here , no fue de ninguna ayuda.
Es posible que tengas diferentes versiones del JDK. Por ejemplo, si su JAVA_HOME apunta a la versión 7, pero en su ruta la versión 6 aparece antes de la versión 7, este error podría aparecer.
Esto podría suceder si hay archivos jar de política estándar en algún lugar de la ruta de clases. Sugiero que busque y reemplace todos los archivos local_policy.jar y us_export_policy.jar con las versiones no restringidas de estos archivos jar en su máquina. Si está utilizando WAS / Portal Server / RAD de IBM, aquí está el enlace a los jar de política de JCE sin restricciones.
Esto sucede cuando la versión de Java no coincide con la versión de los archivos de política. Puede descargar los archivos de políticas relevantes de los siguientes enlaces.
Tarros de política para Java 8
Tarros de política para Java 7
Tarros de política para Java 6