(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>
Обратите внимание, что для простоты я использовал конечную точку адреса.