Почему Tomcat выдает ошибку при смене хранилища ключей? - PullRequest
1 голос
/ 02 декабря 2009

У меня проблема с axis2-client внутри веб-службы JAX-WS. Этот веб-сервис JAX-WS находится внутри контейнера Tomcat. Keystorefile извлекается динамически из базы данных. Когда я запускаю Tomcat, я могу нормально использовать ws-client, и он работает нормально, но если я изменю хранилище ключей, то произойдет сбой с помощью трассировки стека, показанной ниже. Если я перезагружаю Tomcat, он работает нормально. Есть ли в rampart или tomcat статические переменные, которые не сбрасываются до перезапуска Tomcat? Я использую rampart-module 1.3, чтобы подписать сообщение для безопасного веб-сервиса. Я думаю, что конфигурации притока и оттока правильны, так как я печатал их в журнале.

Stacktrace в Tomcat Catalina log:

 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)

1 Ответ

1 голос
/ 29 декабря 2009

Хорошо, я нашел решение. Хитрость заключалась в том, чтобы использовать настройку на основе политик Я использовал старую конфигурацию ParameterBased. Вот ссылка на отличный блог Thilina:

Как программно собрать rampart-config ..

Не забудьте определить файл policy.xml при выполнении этого руководства. Это было то, что я сначала забыл сделать:)

...