Использовать SOAP API от WSO2 ECLIPSE Developer Studio - PullRequest
0 голосов
/ 15 сентября 2018

Мне нужно решение для использования двух API SOAP.

Во-первых, у меня есть URL-адрес wsdl, который будет работать после установки сертификата на компьютере. Я просто хочу спросить, нужно ли выполнять какие-либо настройки в студии разработчика при создании потока.

Во-вторых, мне нужно создать поток в студии разработчиков wso2, который будет вызывать URL-адрес SOAP WSDL и давать ответ, но проблема в том, что wsdl содержит конфигурацию ws-security имени-маркера политики безопасности, которую любой эксперт подскажет мне для этого.

Оба сценария работают в инструменте SOAP UI. Я новичок в wso2, кто-нибудь может мне помочь в этом ??

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

(1) Ничего не поделаешь с dev studio.Вам необходимо импортировать сертификат бэкэнда в хранилище доверенных сертификатов сервера WSO2.

(2) Вы можете создать прокси-службу и вызвать защищенный бэкэнд.Поскольку ваш бэкэнд защищен политикой UT, вы должны создать токен имени пользователя при его вызове.Мы можем использовать посредник класса для создания и установки токена имени пользователя.

Более подробную информацию можно найти по адресу: http://xacmlinfo.org/2014/03/25/how-to-esb-invoking-username-token-secured-backend-service/

Ниже приводится упрощенная версия посредника класса.

public class UTTokenBuilder extends AbstractMediator{
    @Override
    public boolean mediate(MessageContext messageContext) {
        try {
            org.apache.axis2.context.MessageContext context = ((Axis2MessageContext) messageContext)
                    .getAxis2MessageContext();
            context.getOptions().setUserName("admin");
            context.getOptions().setPassword("admin");
            return true;
        } catch (SynapseException e) {
            throw e;
        } catch (Exception e) {
            throw new SynapseException("Error while building UT Token");
        }
    }
}

Ниже приведен пример прокси для вызова защищенного бэкэнда.

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="sec2"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <class name="org.soasecurity.wssecurity.ut.mediator.UTTokenBuilder"/>
         <call>
            <endpoint>
               <address uri="https://localhost:8243/services/secTestProxy">
                  <enableSec policy="conf:/UTPolicy.xml"/>
               </address>
            </endpoint>
         </call>
         <respond/>
      </inSequence>
   </target>
   <description/>
</proxy>

Обратите внимание, что для простоты я использовал конечную точку адреса.

0 голосов
/ 06 мая 2019

На первый вопрос ответ - нет.Сертификат сервера должен храниться только на стороне клиента.При вызове URL-адреса с поддержкой TLS / SSL сертификат сервера должен храниться в доверенном хранилище клиента.Если ваш клиент является сервером WSO2, то этот сертификат должен быть импортирован на client-truststore.jks сервера WSO2.Это конкретное развертывание.Ничего не нужно делать во время разработки артефактов в Developer Studio.

...