2016-03-25 4 views
0

Я использую одну услугу, которая устанавливает соединение только через протокол TLSv1.2. В SoapUI
-Dsoapui.https.protocols = TLSv1.2: - Этот параметр отлично работает и способен получить ответ от службы в инструменте интерфейса SOAP.Включить протокол TLSv1.2 в Mule ESB при выполнении запроса веб-службы SOAP

Нужно что-то подобное, как приведенный выше параметр, в поток ESB мула, который позволяет моему запросу использовать протокол TLSv1.2 явно при проксинге.

Я использую Mule 3.7 CE & JDK 7. В потоке сообщений используются прокси CXF (cxf: proxy-service), чтобы направлять запросы на основе SOAP через Https к конечному клиенту. Когда запрос отправляется в Mule, он выдает исключение, как показано ниже.

Caused by: org.apache.cxf.ws.policy.PolicyException: These policy alternatives can not be satisfied: {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}TransportBinding: TLS is not enabled {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}HttpsToken {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}TransportToken at org.apache.cxf.ws.policy.AssertionInfoMap.checkEffectivePolicy(AssertionInfoMap.java:179) ~[cxf-rt-ws-policy-2.7.15.jar:2.7.15] 

Уже опробованный разрешающий протокол через tls-default.conf файл также добавляет системные аргументы и аргументы сервера не работает.

Вот фрагмент WSDL с помощью политики безопасности -

<wsp:Policy wsu:Id="XYSPolicyID"> 
     <wsp:ExactlyOne> 
      <wsp:All> 
       <sp:TransportBinding 
        xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> 
        <wsp:Policy> 
         <sp:TransportToken> 
          <wsp:Policy> 
           <sp:HttpsToken RequireClientCertificate="false" /> 
          </wsp:Policy> 
         </sp:TransportToken> 
         <sp:AlgorithmSuite> 
          <wsp:Policy> 
           <sp:Basic256 /> 
          </wsp:Policy> 
         </sp:AlgorithmSuite> 
         <sp:Layout> 
          <wsp:Policy> 
           <sp:Strict /> 
          </wsp:Policy> 
         </sp:Layout> 
        </wsp:Policy> 
       </sp:TransportBinding> 
      </wsp:All> 
     </wsp:ExactlyOne> 
    </wsp:Policy> 

Любая помощь была бы оценена !!

ответ

0

Вы можете настроить свои криптографические протоколы и шифры я MULE_HOME/TLS-default.conf

+0

Спасибо за ваш ответ. Я уже настроил эти протоколы. tls-default.conf помещается в домашний путь мула. И я раскоментировал ниже раздел файла conf. enabledProtocols = TLSv1, TLSv1.1, TLSv1.2 –

+0

и проблема все еще сохраняется. В wrapper.conf добавлена ​​одна запись как #include% MULE_BASE%/conf/tls-default.conf –

+0

Вам нужно поставить только TLS 1.2, например: enabledProtocols = TLSv1.2 –

0

Как указано в предыдущем ответе, enabledProtocols=TLSv1.2 должен сделать трюк.

Если у Вас возникнут проблемы, вы можете использовать следующие для устранения:

Start Mule со следующим флагом -M-Djavax.net.debug=ssl:handshake:verbose

Таким образом, вы будете иметь возможность увидеть фактический процесс квитирования.

Другим полезным инструментом является TestSSLServer для определения поддерживаемых протоколов и наборов шифров целевой системы.

Кроме того, вы можете рассмотреть возможность установки пакета расширения Java Cryptography.

HTH, Nahuel.