Hello.

My name is Rafal Malinowski. I am working at Poznan Supercomputing and 
Networing Center.

One of my task it to write a SSOS web-service client for SAML2 protocol. 
It is described by simple wsdl file and some complex xsd files.

I've used axis2-1.4 to generate stub, it was not properly java file and 
it has about 170 000 lines of code. I've decided that I don't need the 
whole message structure (now it is only 300 lines of code) so I've 
removed xsd files from wsdl and now I'm getting just a OMElement 
structure. The problem is that I'am unable to serialize it ot string. It 
just ommits about 90% of the message.

The wsdl file (xds files are cut off):




    </message>
    <message name="SSOSoapResponse">
        <part name="parameters" element="samlp2:Response"/>
    </message>
    
    <portType name="SSOSPortType">
        <operation name="SingleSignOn">
            <input  message="ssos:SSOSoapRequest"
                wsaw:Action="urn:liberty:ssos:2006-08:AuthnRequest"/>
            <output message="ssos:SSOSoapResponse"
                wsaw:Action="urn:liberty:ssos:2006-08:Response"/>
        </operation>
    </portType>
    <binding name="SSOSSoapBinding" type="ssos:SSOSPortType">
        <S:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="SingleSignOn">
            <input>
                    <S:body use="literal"/>
            </input>
            <output>
                    <S:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="SSOService">
        <port name="SSOSPortType" binding="ssos:SSOSSoapBinding">
            <S:address location="http://example.com/idmapping"/>
        </port>
    </service>
</definitions>




The calling code:

OMElement response = ((SSOServiceStub) _stub)
  .SingleSignOn(authnRequest);


The serialization code:

StringWriter stringWriter = new StringWriter();
response.serialize(stringWriter);

return stringWriter.toString();



The tcpdump SOAP response:




<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#"; 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
xmlns:wsa5="http://www.w3.org/2005/08/addressing"; 
xmlns:wsse2="http://schemas.xmlsoap.org/ws/2002/12/secext"; 
xmlns:ams="http://tempuri.org/ams.xsd"; 
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
xmlns:ssos="urn:liberty:ssos:2006-08:SingleSignOn">
<SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body><samlp:Response 
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
ID="c61f62257d149cec89f8a873d6ffc94a" 
InResponseTo="b0dc2f1efcdbec830bcabbc86ace5c59" Version="2.0" 
IssueInstant="2008-06-25T20:08:30Z"><saml:Issuer>*********</saml:Issuer>
<samlp:Status><samlp:StatusCode 
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status><saml:Assertion
 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0" 
ID="e779cea471db7da9214434fd1792af26" 
IssueInstant="2008-06-25T20:08:30Z"><saml:Issuer>***********</saml:Issuer><Signature
 
xmlns="http://www.w3.org/2000/09/xmldsig#";><SignedInfo><CanonicalizationMethod 
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod 
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference 
URI="#e779cea471db7da9214434fd1792af26"><Transforms><Transform 
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></Transforms><DigestMethod
 
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>TuwDkMZ3qQ3dLSpgbC8oXV7fmU8=</DigestValue></Reference></SignedInfo><SignatureValue>
[lot of base64]</X509Certificate>
</X509Data></KeyInfo></Signature>
<saml:Subject><saml:NameID 
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">rafal</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/>
</saml:Subject>
<saml:Conditions NotBefore="2008-06-25T20:08:30Z" 
NotOnOrAfter="2008-06-25T21:09:27Z"><saml:AudienceRestriction><saml:Audience>127.0.0.1:8800</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2008-06-25T20:08:30Z" 
SessionIndex="e779cea471db7da9214434fd1792af26"><saml:AuthnContext>
 
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement></saml:Assertion>
</samlp:Response></SOAP-ENV:Body></SOAP-ENV:Envelope>




The serialization result looks like this:



<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
ID="c61f62257d149cec89f8a873d6ffc94a" 
InResponseTo="b0dc2f1efcdbec830bcabbc86ace5c59" Version="2.0" 
IssueInstant="2008-06-25T20:08:30Z"><saml:Issuer>idp.man.poznan.pl</saml:Issuer>
</samlp:Response>



Can anyone tell me what happend with rest of my soap response?


The second problem is the oryginal java stub does not set SAOPAction 
header, I had to add it manualy (the server requires it to be set to 
proper value). How can I change the wsdl so the stub will set SOAPAction?


I hope someone know how to fix these problems or at least point me at 
something that I didn't notice...


Best regards
  Rafal Malinowski

----------------------------------------------------
Angelina Jolie i Morgan Freeman w rewelacyjnym filmie akcji
"Wanted. Ścigani" - w kinach od 27 czerwca.
http://klik.wp.pl/?adr=http%3A%2F%2Fcorto.www.wp.pl%2Fas%2Fscigani.html&sid=397



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

Reply via email to