AutoIt
AutoIt
SOAP WS-Security Username Authentication
See more XML Examples
Demonstrates creating SOAP XML for WS-Security Username Authentication. The client user name and password are encapsulated in a WS-Security <wsse:UsernameToken>.Chilkat AutoIt Downloads
; Generate this XML with the code that follows:
; <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
; <soap:Header>
; <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2003/06/secext">
; <wsse:UsernameToken wsu:Id="sample"
; xmlns:wsu="http://schemas.xmlsoap.org/ws/2003/06/utility">
; <wsse:Username>sample</wsse:Username>
; <wsse:Password Type="wsse:PasswordText">oracle</wsse:Password>
; <wsu:Created>2004-05-19T08:44:51Z</wsu:Created>
; </wsse:UsernameToken>
; </wsse:Security>
; <wsse:Security soap:actor="oracle"
; xmlns:wsse="http://schemas.xmlsoap.org/ws/2003/06/secext">
; <wsse:UsernameToken wsu:Id="oracle"
; xmlns:wsu="http://schemas.xmlsoap.org/ws/2003/06/utility">
; <wsse:Username>myUsername</wsse:Username>
; <wsse:Password Type="wsse:PasswordText">myPassword</wsse:Password>
; <wsu:Created>2004-05-19T08:46:04Z</wsu:Created>
; </wsse:UsernameToken>
; </wsse:Security>
; </soap:Header>
; <soap:Body>
; <getHello xmlns="http://www.oracle.com"/>
; </soap:Body>
; </soap:Envelope>
;
; First build the outer housing:
$oXml = ObjCreate("Chilkat.Xml")
$oXml.Tag = "soap:Envelope"
$oXml.AddAttribute("xmlns:soap","http://schemas.xmlsoap.org/soap/envelope/")
$oXml.UpdateChildContent "soap:Header",""
$oXml.UpdateAttrAt("soap:Body|getHello",True,"xmlns","http://www.oracle.com")
; Get the current date/time in a string with this format: 2004-05-19T08:46:04Z
$oDt = ObjCreate("Chilkat.CkDateTime")
$oDt.SetFromCurrentSystemTime()
Local $bLocal = False
Local $sCreated = $oDt.GetAsTimestamp($bLocal)
; Now build each UsernameToken block:
$oWsse1 = ObjCreate("Chilkat.Xml")
$oWsse1.Tag = "wsse:Security"
$oWsse1.AddAttribute("xmlns:wsse","http://schemas.xmlsoap.org/ws/2003/06/secext")
$oWsse1.UpdateAttrAt("wsse:UsernameToken",True,"wsu:Id","sample")
$oWsse1.UpdateAttrAt("wsse:UsernameToken",True,"xmlns:wsu","http://schemas.xmlsoap.org/ws/2003/06/utility")
$oWsse1.UpdateChildContent "wsse:UsernameToken|wsse:Username","sample"
$oWsse1.UpdateAttrAt("wsse:UsernameToken|wsse:Password",True,"Type","wsse:PasswordText")
$oWsse1.UpdateChildContent "wsse:UsernameToken|wsse:Password","oracle"
$oWsse1.UpdateChildContent "wsse:UsernameToken|wsu:Created",$sCreated
$oWsse2 = ObjCreate("Chilkat.Xml")
$oWsse2.Tag = "wsse:Security"
$oWsse2.AddAttribute("soap:actor","oracle")
$oWsse2.AddAttribute("xmlns:wsse","http://schemas.xmlsoap.org/ws/2003/06/secext")
$oWsse2.UpdateAttrAt("wsse:UsernameToken",True,"wsu:Id","oracle")
$oWsse2.UpdateAttrAt("wsse:UsernameToken",True,"xmlns:wsu","http://schemas.xmlsoap.org/ws/2003/06/utility")
$oWsse2.UpdateChildContent "wsse:UsernameToken|wsse:Username","oracle"
$oWsse2.UpdateAttrAt("wsse:UsernameToken|wsse:Password",True,"Type","wsse:PasswordText")
$oWsse2.UpdateChildContent "wsse:UsernameToken|wsse:Password","oracle"
$oWsse2.UpdateChildContent "wsse:UsernameToken|wsu:Created",$sCreated
; Insert the UsernameToken blocks:
Local $oXHeader = $oXml.GetChildWithTag("soap:Header")
$oXHeader.AddChildTree($oWsse1)
$oXHeader.AddChildTree($oWsse2)
; Show the XML:
ConsoleWrite($oXml.GetXml() & @CRLF)