第二十四章 加密安全标头元素 - 基本示例
以下示例调用 Web 客户端并发送已加密的 。在此示例中,正文未加密。
Set client=##class(XMLEncrSecHeader.Client.XMLEncrSecHeaderSoap).%New()
// Create UsernameToken
set user="_SYSTEM"
set pwd="SYS"
set userToken=##class(%SOAP.Security.UsernameToken).Create(user,pwd)
//get credentials for encryption
set cred = ##class(%SYS.X509Credentials).GetByAlias("servernopassword")
//get EncryptedKey element and add it
set encropt=$$$SOAPWSEncryptNone ; means do not encrypt body
set enckey=##class(%XML.Security.EncryptedKey).CreateX509(cred,encropt)
//create EncryptedData and add a reference to it from EncryptedKey
set encdata=##class(%XML.Security.EncryptedData).Create(,userToken)
set dataref=##class(%XML.Security.DataReference).Create(encdata)
do enckey.AddReference(dataref)
//add EncryptedKey to security header
do client.SecurityOut.AddSecurityElement(enckey)
//add UsernameToken and place it after EncryptedKey
do client.SecurityOut.AddSecurityElement(userToken,enckey)
Quit client.Divide(1,2)
.png)