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: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to