Hi Colm,
I am using Apache CXF version 3.0.0 and testing JAX-WS services with
WS-Security UsernameToken profile with plain password, and running in to
following issues. Appreciate if you could help in resolving these issues.
1) The client with WSS4JStaxOutInterceptor (WSS4J-2.0.0) is not working.
It is throwing the exception.
a. Exception using Oracle JDK 7 on Windows 7 desktop in the attached file
"OracleJDK7WSS4J-2.0.0-ClientException on Win7.txt"
b. Exception using IBM JDK 7 on AIX in the attached file
"IBMJDK7-WSS4j-2.0.0ClientException on AIX.txt"
2) I replaced the WSS4J 2.0.0 jar's with WSS4J 2.0.1 jar and the client
side works fine. However with 2.0.0 and 2.0.1 the server side code was not
getting the User Name in password callback handler when WSS4JStaxInInterceptor
used, basically "getIdentifier" method returns an empty string. Everything
works fine with old WSS4J interceptors as well as WS-SecurityPolicy.
3) WSS4JStaxOutInterceptor does not log the outbound message when the
logging enabled.
The server configuration:
<jaxws:endpoint name="..." createdFromAPI="true">
<jaxws:inInterceptors>
<bean
class="org.apache.cxf.ws.security.wss4j.WSS4JStaxInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken"/>
<entry key="passwordType" value="PasswordText"/>
<entry key="passwordCallbackClass"
value="...ServerPasswordCallback"/>
</map>
</constructor-arg>
</bean>
</jaxws:inInterceptors>
</jaxws:endpoint>
Thanks,
Venkat
[java] Exception in thread "Thread-1" java.lang.ExceptionInInitializerError
[java] at org.apache.cxf.ws.security.wss4j.WSS4JStaxOutInterceptor.hand
leMessage(WSS4JStaxOutInterceptor.java:150)
[java] at org.apache.cxf.ws.security.wss4j.WSS4JStaxOutInterceptor.hand
leMessage(WSS4JStaxOutInterceptor.java:57)
[java] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseI
nterceptorChain.java:307)
[java] at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:5
14)
[java] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423
)
[java] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326
)
[java] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279
)
[java] at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.ja
va:96)
[java] at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy
.java:137)
[java] at com.sun.proxy.$Proxy35.twowayStructStringTest(Unknown Source)
[java] Time took for 1 threads : 42623 milliseconds
[java] HTTPS Protocols: null
[java] at com.att.cio.rpcperf.client.WSPerfLRClient.TwowayStructStringT
est(WSPerfLRClient.java:131)
[java] at com.att.cio.rpcperf.client.WSPerfLRClient.run(WSPerfLRClient.
java:51)
[java] at com.att.cio.rpcperf.client.LoadRunner$1.run(LoadRunner.java:4
5)
[java] Caused by: java.lang.RuntimeException: src-resolve: Cannot resolve t
he name 'soap11:mustUnderstand' to a(n) 'attribute declaration' component.
[java] at org.apache.wss4j.stax.WSSec.<clinit>(WSSec.java:82)
[java] ... 13 more
[java] Caused by: org.xml.sax.SAXParseException; lineNumber: 35; columnNumb
er: 61; src-resolve: Cannot resolve the name 'soap11:mustUnderstand' to a(n) 'at
tribute declaration' component.
[java] at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.c
reateSAXParseException(ErrorHandlerWrapper.java:198)
[java] at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.e
rror(ErrorHandlerWrapper.java:134)
[java] at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.repo
rtError(XMLErrorReporter.java:437)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHand
ler.reportSchemaErr(XSDHandler.java:4124)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHand
ler.reportSchemaError(XSDHandler.java:4107)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHand
ler.getGlobalDecl(XSDHandler.java:1667)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttr
ibuteTraverser.traverseLocal(XSDAttributeTraverser.java:90)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbst
ractTraverser.traverseAttrsAndAttrGrps(XSDAbstractTraverser.java:615)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComp
lexTypeTraverser.processComplexContent(XSDComplexTypeTraverser.java:1122)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComp
lexTypeTraverser.traverseComplexTypeDecl(XSDComplexTypeTraverser.java:335)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComp
lexTypeTraverser.traverseGlobal(XSDComplexTypeTraverser.java:191)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHand
ler.traverseGlobalDecl(XSDHandler.java:1877)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHand
ler.getGlobalDecl(XSDHandler.java:1765)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElem
entTraverser.traverseNamedElement(XSDElementTraverser.java:405)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElem
entTraverser.traverseGlobal(XSDElementTraverser.java:242)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHand
ler.traverseSchemas(XSDHandler.java:1422)
[java] at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHand
ler.parseSchema(XSDHandler.java:619)
[java] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.lo
adSchema(XMLSchemaLoader.java:588)
[java] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.lo
adGrammar(XMLSchemaLoader.java:555)
[java] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.lo
adGrammar(XMLSchemaLoader.java:521)
[java] at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaF
actory.newSchema(XMLSchemaFactory.java:240)
[java] at org.apache.wss4j.stax.ext.WSSUtils.loadWSSecuritySchemas(WSSU
tils.java:699)
[java] at org.apache.wss4j.stax.WSSec.<clinit>(WSSec.java:75)
[java] ... 13 more [java] Exception in thread "Thread-7" java.lang.ExceptionInInitializerError
[java] at java.lang.J9VMInternals.initialize(J9VMInternals.java:250)
[java] at
org.apache.cxf.ws.security.wss4j.WSS4JStaxOutInterceptor.handleMessage(WSS4JStaxOutInterceptor.java:150)
[java] at
org.apache.cxf.ws.security.wss4j.WSS4JStaxOutInterceptor.handleMessage(WSS4JStaxOutInterceptor.java:57)
[java] at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
[java] at
org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
[java] at
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
[java] at
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
[java] at
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
[java] at
org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
[java] at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:137)
[java] at $Proxy35.twowayStructStringTest(Unknown Source)
[java] at
com.att.cio.rpcperf.client.WSPerfLRClient.TwowayStructStringTest(WSPerfLRClient.java:131)
[java] at
com.att.cio.rpcperf.client.WSPerfLRClient.run(WSPerfLRClient.java:51)
[java] at
com.att.cio.rpcperf.client.LoadRunner$1.run(LoadRunner.java:45)
[java] Caused by: java.lang.RuntimeException: White spaces are required
between publicId and systemId.
[java] at org.apache.wss4j.stax.WSSec.<clinit>(WSSec.java:82)
[java] at java.lang.J9VMInternals.initializeImpl(Native Method)
[java] at java.lang.J9VMInternals.initialize(J9VMInternals.java:228)
[java] ... 13 more
[java] Caused by: org.xml.sax.SAXParseException: White spaces are required
between publicId and systemId.
[java] at
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
Source)
[java] at
org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
[java] at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
[java] at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
[java] at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown
Source)
[java] at org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown
Source)
[java] at
org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl(Unknown Source)
[java] at
org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown
Source)
[java] at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
[java] at
org.apache.xerces.impl.xs.opti.SchemaParsingConfig.parse(Unknown Source)
[java] at
org.apache.xerces.impl.xs.opti.SchemaParsingConfig.parse(Unknown Source)
[java] at org.apache.xerces.impl.xs.opti.SchemaDOMParser.parse(Unknown
Source)
[java] at
org.apache.xerces.impl.xs.traversers.XSDHandler.getSchemaDocument(Unknown
Source)
[java] at
org.apache.xerces.impl.xs.traversers.XSDHandler.resolveSchema(Unknown Source)
[java] at
org.apache.xerces.impl.xs.traversers.XSDHandler.constructTrees(Unknown Source)
[java] at
org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(Unknown Source)
[java] at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(Unknown
Source)
[java] at
org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
[java] at
org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
[java] at
org.apache.xerces.jaxp.validation.XMLSchemaFactory.newSchema(Unknown Source)
[java] at
org.apache.wss4j.stax.ext.WSSUtils.loadWSSecuritySchemas(WSSUtils.java:699)
[java] at org.apache.wss4j.stax.WSSec.<clinit>(WSSec.java:75)
[java] ... 15 more