Web Service Samples for WSS / WSSE
From AlfrescoWiki
Contents |
[edit] Constructing the WSSE headers
<process name="alfresco
...
xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:ns5="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<variables>
<variable name="wsseHeader" element="ns4:Security"/>
<variable name="wstimestamp" element="ns5:Timestamp"/>
</variables>
<sequence name="main">
<assign name="makeWSSEHeaders">
<copy>
<from expression="xp20:current-dateTime()"/>
<to variable="wstimestamp" query="/ns5:Timestamp/ns5:Created"/>
</copy>
<copy>
<from expression="xp20:current-dateTime()"/>
<to variable="wstimestamp" query="/ns5:Timestamp/ns5:Expires"/>
</copy>
<bpelx:append>
<bpelx:from variable="wstimestamp" query="/ns5:Timestamp"/>
<bpelx:to variable="wsseHeader" query="/ns4:Security"/>
</bpelx:append>
<bpelx:append>
<bpelx:from>
<wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>admin</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"/>
</wsse:UsernameToken>
</bpelx:from>
<bpelx:to variable="wsseHeader" query="/ns4:Security"/>
</bpelx:append>
<bpelx:append>
<bpelx:from expression="ora:getNodeValue(bpws:getVariableData('startSession_Output','parameters','/ns1:startSessionResponse/ns1:startSessionReturn/ns1:ticket'))"/>
<bpelx:to variable="wsseHeader" query="/ns4:Security/ns4:UsernameToken/ns4:Password"/>
</bpelx:append>
</assign>
<invoke name="repo" partnerLink="repository-service" portType="ns6:RepositoryServiceSoapPort" operation="query" inputVariable="repo_query_InputVariable"
outputVariable="repo_query_OutputVariable" bpelx:inputHeaderVariable="wsseHeader"/>
</sequence>
</process>
[edit] Starting a Session
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <env:Body> <startSession xmlns="http://www.alfresco.org/ws/service/authentication/1.0"> <username>admin</username> <password>admin</password> </startSession> </env:Body> </env:Envelope>
[edit] Calling RepositoryService using the WSSE headers
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <env:Header> <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" ans1:Id="" xmlns:ans1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <ans1:Created>2007-08-01T12:13:37+01:00</ans1:Created> <ans1:Expires>2007-08-01T12:13:37+01:00</ans1:Expires> </Timestamp> <UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <Username>admin</Username> <Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">TICKET_de9b08df-4017-11dc-8ec5-41f7efb0a5f7</Password> </UsernameToken> </Security> </env:Header> <env:Body> <query xmlns="http://www.alfresco.org/ws/service/repository/1.0" xmlns:ns3="http://www.alfresco.org/ws/model/content/1.0"> <store> <ns1:scheme xmlns:ns1="http://www.alfresco.org/ws/model/content/1.0">workspace</ns1:scheme> <ns2:address xmlns:ns2="http://www.alfresco.org/ws/model/content/1.0">SpacesStore</ns2:address> </store> <query> <ns3:language xmlns:ns3="http://www.alfresco.org/ws/model/content/1.0">lucene</ns3:language> <ns4:statement xmlns:ns4="http://www.alfresco.org/ws/model/content/1.0">@cm\:name:"Alfresco-Tutorial.pdf"</ns4:statement> </query> <includeMetaData>true</includeMetaData> </query> </env:Body> </env:Envelope>
[edit] Use ContentService with Lucene Query with WSSE headers
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Header>
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" ans1:Id="" xmlns:ans1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ans1:Created>2007-08-01T12:13:37+01:00</ans1:Created>
<ans1:Expires>2007-08-01T12:20:37+01:00</ans1:Expires>
</Timestamp>
<UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<Username>admin</Username>
<Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">TICKET_de9b08df-4017-11dc-8ec5-41f7efb0a5f7</Password>
</UsernameToken>
</Security>
</env:Header>
<env:Body>
<read xmlns="http://www.alfresco.org/ws/service/content/1.0">
<items>
<store xmlns="http://www.alfresco.org/ws/model/content/1.0">
<scheme>workspace</scheme>
<address>SpacesStore</address>
</store>
<query xmlns="http://www.alfresco.org/ws/model/content/1.0">
<language>lucene</language>
<statement>@cm\:name:"Alfresco-Tutorial.pdf"</statement>
</query>
</items>
<property>{http://www.alfresco.org/model/content/1.0}content</property>
</read>
</env:Body>
</env:Envelope>
[edit] Use ContentService with uuid with WSSE headers
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Header>
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" ans1:Id="" xmlns:ans1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ans1:Created>2007-08-01T12:00:28+01:00</ans1:Created>
<ans1:Expires>2007-08-01T12:05:28+01:00</ans1:Expires>
</Timestamp>
<UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<Username>admin</Username>
<Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">TICKET_088d539c-4016-11dc-8ec5-41f7efb0a5f7</Password>
</UsernameToken>
</Security>
</env:Header>
<env:Body>
<read xmlns="http://www.alfresco.org/ws/service/content/1.0">
<items>
<nodes xmlns="http://www.alfresco.org/ws/model/content/1.0">
<store>
<scheme>workspace</scheme>
<address>SpacesStore</address>
</store>
<uuid>635c49e6-0af5-11dc-9bc5-2ddbdefb608b</uuid>
</nodes>
</items>
<property>{http://www.alfresco.org/model/content/1.0}content</property>
</read>
</env:Body>
</env:Envelope>
[edit] Use ContentService with path with WSSE headers
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Header>
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" ans1:Id="" xmlns:ans1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ans1:Created>2007-08-01T12:00:28+01:00</ans1:Created>
<ans1:Expires>2007-08-01T12:05:28+01:00</ans1:Expires>
</Timestamp>
<UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<Username>admin</Username>
<Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">TICKET_088d539c-4016-11dc-8ec5-41f7efb0a5f7</Password>
</UsernameToken>
</Security>
</env:Header>
<env:Body>
<read xmlns="http://www.alfresco.org/ws/service/content/1.0">
<items>
<nodes xmlns="http://www.alfresco.org/ws/model/content/1.0">
<store>
<scheme>workspace</scheme>
<address>SpacesStore</address>
</store>
<path>/app:company_home/app:guest_home/cm:Alfresco-Tutorial.pdf</path>
</nodes>
</items>
<property>{http://www.alfresco.org/model/content/1.0}content</property>
</read>
</env:Body>
</env:Envelope>

