Personal tools
You are here: Home GRIA Documentation Documentation 5.3 FAQs What do the SOAP messages look like?

What do the SOAP messages look like?

Up to Table of Contents

This FAQ applies to: 5.1, 5.2, 5.3

The GRIA client libraries will produce correct SOAP messages for you automatically. However, if you are writing your own client then you may want to see what GRIA messages look like.

Here is a typical example of a SOAP message sent by the GRIA client. For clarity, some namespace declarations have been removed and long values truncated.

<?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:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
   xmlns:wsa="http://www.w3.org/2005/08/addressing"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
      <wsse:BinarySecurityToken ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
                      EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
                wsu:Id="CertId-6926835">MIIDL...Grc=</wsse:BinarySecurityToken>
      <ds:Signature Id="Signature-17224938">
        <ds:SignedInfo>
          <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
          <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
          <ds:Reference URI="#id-22860959">
            <ds:Transforms>
              <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            </ds:Transforms>
            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
            <ds:DigestValue>CIVOOYYFc6QTYcvYy6DCryN0jv8=</ds:DigestValue>
          </ds:Reference>
          <ds:Reference URI="#id-25903771">...</ds:Reference>
          <ds:Reference URI="#id-29494388">...</ds:Reference>
          <ds:Reference URI="#Timestamp-5100563">...</ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>...</ds:SignatureValue>
        <ds:KeyInfo Id="KeyId-25459266">
          <wsse:SecurityTokenReference wsu:Id="STRId-7773562">
            <wsse:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#CertId-6926835"/>
          </wsse:SecurityTokenReference>
        </ds:KeyInfo>
      </ds:Signature>
      <wsu:Timestamp wsu:Id="Timestamp-5100563">
        <wsu:Created>2007-06-18T15:02:11.303Z</wsu:Created>
        <wsu:Expires>2007-06-18T15:07:11.303Z</wsu:Expires>
      </wsu:Timestamp>
    </wsse:Security>

    <wsa:To soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0">http://.../gria-basic-app-services/services/DataService</wsa:To>

    <gria:BillingInformation soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" wsu:Id="id-29494388" soapenv:mustUnderstand="0">
      <wsa:Address>http://denbies.it-innovation.soton.ac.uk:8080/gria-service-provider-mgt/services/SLAService</wsa:Address>
      <wsa:ReferenceParameters>
        <ns1:ConversationID wsu:Id="id-25903771">ff808181-12765745-0112-7666ac96-0086</ns1:ConversationID>
      </wsa:ReferenceParameters>
      <wsa:Metadata>
        <ns1:AdditionalSecurityToken>...</ns1:AdditionalSecurityToken>
      </wsa:Metadata>
    </gria:BillingInformation>

  </soapenv:Header>

  <soapenv:Body wsu:Id="id-22860959">
    <data:createStagingArea>
      <data:label xsi:type="xsd:string">My Data Stager</data:label>
      <data:owner xsi:type="ns5:MatchRule">
        <match:issuerCertificate xsi:type="xsd:string">MIID...L6uw==</match:issuerCertificate>
        <match:subjectDN xsi:type="xsd:string">EMAILADDRESS=james@gria.org, CN=James, ...</match:subjectDN>
        <match:processRole xsi:type="xsd:string">owner</match:processRole>
        <match:deny xsi:type="xsd:boolean">false</match:deny>
      </data:owner>
    </data:createStagingArea>
  </soapenv:Body>
</soapenv:Envelope>

Here is a break-down of the main parts:

 

wsse:Security
This is the standard WS-Security header. It contains the sender's X.509 certificate (BinarySecurityToken), a signature over several parts of the message (Signature) and the time that the message was sent (Timestamp).
wsa:To
This is a standard WS-Addressing header, giving the address to which the message was sent.
gria:BillingInformation
This is a custom GRIA header, giving the WS-Addressing EPR of the SLA (Service Level Agreement) which should manage this resource. Unmanaged services don't require this header, but a managed service will only allow resources to be created if the user has access to an SLA allowing them to create such resources. The user may provide additional credentials proving that they are authorised to use this SLA (AdditionalSecurityToken); typically this is a SAML assertion.
data:createStagingArea
This is the actual SOAP operation being invoked. Inside are the arguments to the operation. Here, we are giving the new resource a label and an initial access policy granting James the "owner" role.