¿Por qué el error de Tomcat cuando cambio el almacén de claves?
-
11-09-2019 - |
Pregunta
Tengo un problema con axis2-cliente dentro servicio web JAX-WS. Este servicio web JAX-WS es dentro del contenedor Tomcat. KeyStoreFile se recupera dinámicamente de base de datos. Cuando comienzo Tomcat puedo usar WS-cliente normalmente y que trabaja muy bien, pero si cambio el almacén de claves falla con StackTrace se muestra a continuación. Si recomienzo Tomcat funciona bien. Tiene algunas variables estáticas que no se enrojeció hasta que se reinicie Tomcat muralla o Tomcat? Yo uso muralla-módulo de 1,3 a firmar un mensaje para un servicio web seguro. Creo configuraciones de entrada y de salida son correctos ya que he estado imprimirlos en el registro.
El StackTrace en Tomcat registro Catalina:
org.apache.axis2.AxisFault: Error during Signature: ; nested exception is:
org.apache.ws.security.WSSecurityException: General security error (No certificates for user user1 were found for signature)
at org.apache.rampart.handler.WSDoAllSender.processMessage(WSDoAllSender.java:67)
at org.apache.rampart.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:72)
at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:416)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
Solución
Ok descubrí la solución. El truco era utilizar configuración PolicyBased. Yo estaba usando la configuración ParameterBased de edad. Aquí hay un enlace a gran blog por Thilina:
Cómo construir muralla-config mediante programación ..
Recuerde que debe definir archivo policy.xml al seguir este tutorial. Esto era algo que por primera vez se olvidó de hacer:)