Dear all, I tried to follow the example in WSS4j web site to setup a Web service with authentication and encryption using Axis. However I got the following error response on server side:
HTTP/1.1 500 Internal Server Error Content-Type: text/xml;charset=utf-8 Date: Mon, 09 Jan 2006 10:05:19 GMT Server: Apache-Coyote/1.1 Connection: close <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Server</faultcode><faultstring>Server
Error</faultstring><detail><ns2:stackTrace xmlns:ns2="http://xml.apache.org/axis/">Server Error at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:473) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
</ns2:stackTrace><ns3:hostname
xmlns:ns3="http://xml.apache.org/axis/">PYKOONPC</ns3:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>java.lang.ArrayIndexOutOfBoundsException:
2 >= 2
at java.util.Vector.elementAt(Vector.java:431)
at
javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:633)
at org.apache.axis.utils.tcpmon$Connection.run(tcpmon.java:1205)
As it only states that it is "Server Error", I cannot figure out which
part goes wrong. Anyone have idea for it? As I have tried successfully
when I use authentication only, therefore I guess it may be a problem in
decryption, or maybe server side setting problem.
I have attached files I used:
client_deploy.wsdd - the client deployment wsdd for running the client.
clientCrypto.properties - the crypto.properties for the client side.
haha.keystore - the keystore I generated for the client side, it
contains a certificate. The password for this keystore is "password".
deploy.wsdd - the wsdd for deploying the web service to Axis
crypto.properties - the crypto.properties put on c:\temp, for server side.
server.keystore - the keystore for the server side, contain the key.
Both the keystore and key passwordd is "password".
Regards,
Bob Koon
haha.keystore
Description: Binary data
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="stock-wss-01" provider="java:RPC" style="document" use="literal"> <requestFlow> <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver"> <parameter name="passwordCallbackClass" value="PWCallback"/> <parameter name="action" value="UsernameToken Encrypt"/> <parameter name="decryptionPropFile" value="c:\temp\crypto.properties" /> </handler> </requestFlow> <parameter name="className" value="samples.stock.StockQuoteService"/> <parameter name="allowedMethods" value="getQuote"/> <parameter name="scope" value="application"/> </service> </deployment>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/> <globalConfiguration > <requestFlow > <handler type="java:org.apache.ws.axis.security.WSDoAllSender" > <parameter name="action" value="UsernameToken Encrypt"/> <parameter name="user" value="wss4j"/> <parameter name="passwordCallbackClass" value="sample.stock.client.PWCallback"/> <parameter name="passwordType" value="PasswordDigest"/> <parameter name="encryptionPropFile" value="clientCrypto.properties" /> <parameter name="encryptionKeyIdentifier" value="X509KeyIdentifier" /> <parameter name="encryptionUser" value="encryption" /> <parameter name="encryptionParts" value="{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}UsernameToken" /> </handler> </requestFlow > </globalConfiguration > </deployment>
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.keystore.alias=encryption org.apache.ws.security.crypto.merlin.alias.password=password org.apache.ws.security.crypto.merlin.file=haha.keystore
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.keystore.alias=encryption org.apache.ws.security.crypto.merlin.alias.password=password org.apache.ws.security.crypto.merlin.file=c:\temp\server.keystore
server.keystore
Description: Binary data
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
