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

Attachment: 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

Attachment: server.keystore
Description: Binary data

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to