Sample code for 30+ languages & platforms
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

AutoIt
; 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)