Немного опоздал на этот вопрос, но я смог сделать действительные запросы к службе SOAP ws security, построив тело запроса и заголовки вручную в ColdFusion без каких-либо внешних jar-файлов и без непосредственного вызова каких-либо библиотек java.Маркер имени пользователя spec для WSS (Web Services Security) довольно прост.Вы можете сделать что-то похожее на приведенное ниже, чтобы сгенерировать заголовок безопасности и просто добавить его к пользовательской полезной нагрузке SOAP.Ключ генерирует совместимый и уникальный одноразовый номер с каждым запросом вместе с совместимой датой и временем.
Если вам нужна дополнительная информация о сборке и отправке запросов в целом, взгляните на Создание мылаЗапрос веб-службы с ColdFusion и CFHTTP .После того, как вы собрали cfc с различными служебными методами (отправка запроса, создание заголовка безопасности и т. Д.), Нужно создать специальные функции, соответствующие методам API, которые вы хотите вызвать (загрузить wsdl в soapUI, копировать / вставитьтело запроса в вашей функции cfc, при необходимости добавьте аргументы и бизнес-логику, проанализируйте ответ).
<cffunction name="generateSecurityHeader" access="private" returntype="string" output="false">
<cfset var loc = structNew() />
<cfsavecontent variable="loc.soapSecurityHeader">
<cfoutput>
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" 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:UsernameToken wsu:Id="UsernameToken-1">
<wsse:Username>USERNAME</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0##PasswordText">PASSWORD</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0##Base64Binary">#ToBase64(createUUID())#</wsse:Nonce>
<wsu:Created>#Dateformat(Now(),'yyyy-mm-ddThh:mm:ss')#Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
</cfoutput>
</cfsavecontent>
<cfreturn loc.soapSecurityHeader>
</cffunction>