es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

java.lang.NoClassDefFoundError: No se pudo inicializar la clase javax.crypto.JceSecurity.

Tenemos una aplicación Spring MVC en la que implementamos la autenticación JWT. Funciona bien en el entorno local, pero después de implementarla como archivo war en el servidor Linux, estamos teniendo el siguiente error. Solo algunos llamados de API presentan este problema, mientras que otros funcionan sin error alguno.

He comprobado que ya estén disponibles los archivos necesarios en la política de seguridad:

/jre/lib/security/policy/unlimited/US_export_policy.jar
/jre/lib/security/policy/unlimited/local_policy.jar
/jre/lib/security/policy/limited/US_export_policy.jar
/jre/lib/security/policy/limited/local_policy.jar

Error del servidor interno 500 – Causa raíz:

java.lang.NoClassDefFoundError: No se pudo inicializar la clase javax.crypto.JceSecurity
javax.crypto.Mac.getInstance(Mac.java:176)
io.jsonwebtoken.impl.crypto.MacSigner.doGetMacInstance(MacSigner.java:64)
io.jsonwebtoken.impl.crypto.MacSigner.getMacInstance(MacSigner.java:53)
io.jsonwebtoken.impl.crypto.MacSigner.sign(MacSigner.java:47)
io.jsonwebtoken.impl.crypto.MacValidator.isValid(MacValidator.java:33)
io.jsonwebtoken.impl.crypto.DefaultJwtSignatureValidator.isValid(DefaultJwtSignatureValidator.java:61)
io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:408)
io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:541)
io.jsonwebtoken.impl.DefaultJwtParser.parseClaimsJws(DefaultJwtParser.java:601)
io.jsonwebtoken.impl.ImmutableJwtParser.parseClaimsJws(ImmutableJwtParser.java:173)
com.gsshop.api.jwt.JWTManager.validateJwtToken(JWTManager.java:66)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    “Basado en el error, parece que el problema está relacionado con la política de seguridad JCE. Es posible que los archivos jar de política disponibles en el directorio /jre/lib/security/policy/ no sean compatibles con la versión de Java que se está ejecutando en el servidor Linux.

    Se recomienda verificar la versión de Java que se está ejecutando en el servidor Linux y descargar los archivos jar de política JCE adecuados de Oracle. Una vez descargados los archivos jar de política, estos deben ser colocados en el directorio /jre/lib/security/policy/ y el servidor debe reiniciarse.”

Comments are closed.