Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.0
-
None
-
None
-
None
-
Windows NT 5.1 SP 1, Tomcat 5.5.9
Description
Following the instructions for enabling Rampart in Axis2 leads to the following exception:
java.lang.RuntimeException: org.apache.ws.security.components.crypto.Merlin cannot create instance
org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:155)
org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFactory.java:115)
org.apache.ws.security.handler.WSHandler.loadSignatureCrypto(WSHandler.java:337)
org.apache.ws.security.handler.WSHandler.decodeSignatureParameter2(WSHandler.java:770)
org.apache.ws.security.handler.WSHandler.doReceiverAction(WSHandler.java:231)
org.apache.axis2.security.WSDoAllReceiver.processMessage(WSDoAllReceiver.java:176)
org.apache.axis2.security.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:82)
org.apache.axis2.engine.Phase.invoke(Phase.java:381)
org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:473)
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:445)
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
I have a fresh installation of Tomcat 5.5.9. I deployed Axis 2, added the line <module ref="rampart"/> to axis2.xml and uploaded a service with the following configuration.
service.xml:
<service name="lcc_calculator">
<description>
LCC Calculator
</description>
<parameter name="ServiceClass" locked="false">com.thenational.prototype.axis2.LCCCalculator</parameter>
<parameter name="InflowSecurity">
<action>
<items>Timestamp Signature Encrypt</items>
<passwordCallbackClass>com.thenational.prototype.axis2.security.PasswordStore</passwordCallbackClass>
<signaturePropFile>interop.properties</signaturePropFile>
</action>
</parameter>
<operation name="calculate">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</service>
interop.properties:
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=password
org.apache.ws.security.crypto.merlin.file=interop/interop2.jks
Whether this is a genuine bug or a lack of documentation I am not sure. User mailing list is unhelpful.