Как создать клиент веб-службы ColdFusion, который использует WS-Security?

Я выставил несколько веб-сервисов в нашем продукте, используя Java и WS-Security. Один из наших клиентов хочет использовать веб-сервис с помощью ColdFusion. Поддерживает ли ColdFusion WS-Security? Могу ли я обойти это, написав Java-клиент и используя это в ColdFusion?

(Я мало знаю о ColdFusion).

4 ответа

Я предполагаю, что вы хотите передать безопасность как часть заголовка SOAP. Вот пример того, как подключиться к сервису .Net. Тот же подход должен применяться к Java, просто URL будет другим.

Надеюсь, это то, что вам нужно.


Это, вероятно, более точно, чтобы создать "простой" заголовок мыла xml. В приведенном выше примере отсутствует несколько строк.

Local['soapHeader'] = xmlNew();
Local['soapHeader']['UsernameToken'] = xmlElemNew(local.soapHeader, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "UsernameToken");
Local['soapHeader']['UsernameToken']['username'] = xmlElemNew(local.soapHeader, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "username");
Local['soapHeader']['UsernameToken']['username'].XmlText = Arguments.szUserName;
Local['soapHeader']['UsernameToken']['username'].XmlAttributes["xsi:type"] = "xsd:string";
Local['soapHeader']['UsernameToken']['password'] = xmlElemNew(local.soapHeader, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "password");
Local['soapHeader']['UsernameToken']['password'].XmlText = Arguments.szPassword;
Local['soapHeader']['UsernameToken']['password'].XmlAttributes["xsi:type"] = "xsd:string";
addSOAPRequestHeader(ws, "ignoredNameSpace", "ignoredName", Local.soapHeader, false);


Я никогда не делал ws-security и не знаю, может ли ColdFusion его использовать или нет, но чтобы ответить на ваш вторичный вопрос:

Можно ли обойти это, написав java-клиент и используя это в coldfusion?

Да, абсолютно. ColdFusion может легко использовать объекты и методы Java.


Я некоторое время изучаю WS-Secuirty и ColdFusion и могу сказать, что приведенный выше пример не является реализацией WS-Security. Несмотря на то, что имя пользователя и пароль отправляются в заголовке, они отправляются в виде открытого текста. Использование SSL поможет, но WS-Security - это намного больше, чем просто применение этого кода. ColdFusion изначально не поддерживает WS-Security, но может легко использовать объекты и методы Java. Там пакет из Apache под названием WSS4J, который предоставляет средства для реализации WS-Security на Java. Вы можете написать обертку, а затем использовать ее в ColdFusion. Я уверен, что смог это сделать, однако на стороне ColdFusion должно быть небольшое изменение конфигурации, с которыми у меня возникают проблемы.

Если кто-то может помочь мне в части конфигурации, я бы очень признателен.

Дмитрий

licensed under cc by-sa 3.0 with attribution.