Por que o erro Tomcat quando eu mudar o armazenamento de chaves?
-
11-09-2019 - |
Pergunta
Eu tenho um problema com eixo2-cliente dentro de serviço Web JAX-WS. Este serviço da Web JAX-WS está dentro de contêiner Tomcat. KeyStoreFile é recuperado dinamicamente a partir de banco de dados. Quando eu começar Tomcat posso usar ws-cliente normalmente e ele funciona muito bem, mas se eu mudar o keystore ele falha com stacktrace mostrado abaixo. Se eu reiniciar o Tomcat ele funciona bem. Será muralha ou tomcat têm algumas variáveis ??estáticas que não são liberadas até Tomcat é reiniciado? Eu uso muralha-módulo 1.3 a assinar mensagem para um serviço web seguro. Acho entrada e saída configurações estão corretas desde que eu tenha sido imprimi-los no log.
O Stacktrace no log Catalina Tomcat:
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)
Solução
Ok eu descobri a solução. O truque era usar a configuração PolicyBased. Eu estava usando a configuração ParameterBased idade. Aqui está um link para grande blog por Thilina:
como construir muralha-config programaticamente ..
Lembre-se de definir arquivo policy.xml ao seguir este tutorial. Isso era algo que eu primeira esqueceu de fazer:)