Hi all,
My web service code makes a call to a service which returns a SAML assertion
(serialised with XStream) and this works fine.
However, if I move this call to my security handler code (WSCredentialReceiver
extended from wss4j) configured in requestFlow within the server-config.wsdd
(of the same service) I get the CannotResolveClassException exception from
XStream when its trying to deserialise it (full error below).
opensaml.jar (which contains SAMLAudienceRestrictionCondition) IS in the
WEB-INF/lib directory of my service. Shouldn't the classloader to be able to
see all jars in the service's WEB-INF/lib at the handler stage ?
Do I need an extra parameter settings in the wsdd for this ?
The relevant snippet of my server-config.wsdd looks like this:
....
<service name="publication" provider="java:RPC" use="literal" style="document"
>
<parameter name="className"
value="uk.ac.besc.prism.publication.impl.publication"/>
<wsdlFile>/wsdl/publication.wsdl</wsdlFile>
<parameter name="allowedMethods" value="*"/>
<requestFlow>
<handler type="SecurityInboundHandler"/>
</requestFlow>
<responseFlow>
<handler type="IntegrityEnforcementHandler"/>
</responseFlow>
</service>
....
<handler name="SecurityInboundHandler"
type="java:uk.ac.besc.prism.std.utils.impl.WSCredentialReceiver">
<parameter name="action" value="Signature"/>
<parameter name="signaturePropFile" value="crypto.properties"/>
<parameter name="passwordCallbackClass"
value="com.eoveri.std.ws.PWCallback"/>
<parameter name="signatureKeyIdentifier" value="DirectReference" />
</handler>
I have tested it with with tomcat 5.x and tomcat 6.0.13, but the same error
occurs,
Any help would be much appreciated,
Thanks
Karen Loughran
Full Error Trace:
---- Debugging information ----
message : org.apache.xerces.dom.DeferredElementNSImpl :
org.apache.xerces.dom.DeferredElementNSImpl
line number : 37
path :
/list/SAMLAssertion/conditions/org.opensaml.SAMLAudienceRestrictionCondition/root
cause-message : org.apache.xerces.dom.DeferredElementNSImpl :
org.apache.xerces.dom.DeferredElementNSImpl
class : java.util.List
cause-exception :
com.thoughtworks.xstream.mapper.CannotResolveClassException
required-type : org.opensaml.SAMLAudienceRestrictionCondition
-------------------------------
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:63)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46)
at
com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:66)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:57)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:50)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:56)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46)
at
com.thoughtworks.xstream.annotations.AnnotationReflectionConverter.unmarshallField(AnnotationReflectionConverter.java:49)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:159)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:118)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:56)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46)
at
com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:66)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:57)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:50)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:56)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:117)
at
com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.java:29)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:826)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:813)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:761)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:753)
at
uk.ac.besc.prism.std.utils.impl.WSCredentialReceiver.getGroupFromShibboleth(Unknown
Source)
at
uk.ac.besc.prism.std.utils.impl.WSCredentialReceiver.verifyTrust(Unknown
Source)
at
org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.java:283)
at uk.ac.besc.prism.std.utils.impl.WSCredentialReceiver.invoke(Unknown
Source)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]