2014-10-27 3 views
1

Я использую верблюда: 2.12.1 весна: 4.0.5.RELEASE CXF: 2.7.13Проблема с добавлением wsse: заголовок безопасности в Apache Camel Route

Моя цель состоит в том, чтобы доставить сообщение мыло с wsse: заголовок безопасности (как указано ниже) в режиме Payload с моего маршрутизатора верблюда на какую-то конечную точку.

<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-D5896C4D7E4684BCF8141101393698197"> 
     <wsse:Username><xsl:value-of select="User" /></wsse:Username> 
     <wsse:Password 
      Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"><xsl:value-of select="password" /></wsse:Password> 
     <wsu:Created><xsl:value-of select="$START_TIME" /></wsu:Created> 
    </wsse:UsernameToken> 
</wsse:Security> 

Для достижения этой цели я создал конфигурационный файл, который имеет приведенную ниже запись

<jaxws:client name="{http://com.abc/CallingService}CallingService" createdFromAPI="true"> 
    <jaxws:properties> 
    <entry key="ws-security.username" value= "User" /> 
    <entry key="ws-security.password" value="password" /> 
    </jaxws:properties> 
</jaxws:client> 

Но не уверен, как я могу использовать этот файл или вызвать это где-то в пути или какой-либо другой файл весной конфигурации , так что у меня может быть заголовок мыла в моем исходящем сообщении.

В настоящее время я получаю исключение политики

org.apache.cxf.ws.policy.PolicyException: No username available 
    at org.apache.cxf.ws.security.wss4j.AbstractTokenInterceptor.policyNotAsserted(AbstractTokenInterceptor.java:229) ~[cxf-rt-ws-security-2.7.13.jar:2.7.13] 
    at org.apache.cxf.ws.security.wss4j.UsernameTokenInterceptor.addUsernameToken(UsernameTokenInterceptor.java:361) ~[cxf-rt-ws-security-2.7.13.jar:2.7.13] 
    at org.apache.cxf.ws.security.wss4j.UsernameTokenInterceptor.addToken(UsernameTokenInterceptor.java:307) ~[cxf-rt-ws-security-2.7.13.jar:2.7.13] 
    at org.apache.cxf.ws.security.wss4j.AbstractTokenInterceptor.handleMessage(AbstractTokenInterceptor.java:95) ~[cxf-rt-ws-security-2.7.13.jar:2.7.13] 
    at org.apache.cxf.ws.security.wss4j.AbstractTokenInterceptor.handleMessage(AbstractTokenInterceptor.java:61) ~[cxf-rt-ws-security-2.7.13.jar:2.7.13] 

Моя WSDL является, как показано ниже:

<wsp:Policy wsu:Id="EndpointSecurityPolicy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"> 
    <wsp:ExactlyOne> 
     <wsp:All> 
     <sp:TransportBinding> 
      <wsp:Policy> 
      <sp:TransportToken> 
       <wsp:Policy> 
       <sp:HttpsToken> 
        <wsp:Policy> 
        <sp:RequireClientCertificate/> 
        </wsp:Policy> 
       </sp:HttpsToken> 
       </wsp:Policy> 
      </sp:TransportToken> 
      <sp:AlgorithmSuite> 
       <wsp:Policy> 
       <sp:Basic128/> 
       </wsp:Policy> 
      </sp:AlgorithmSuite> 
      <sp:IncludeTimestamp/> 
      </wsp:Policy> 
     </sp:TransportBinding> 
     <sp:SupportingTokens> 
      <wsp:Policy> 
      <sp:UsernameToken> 
       <wsp:Policy> 
       <sp:NoPassword/> 
       </wsp:Policy> 
      </sp:UsernameToken> 
      </wsp:Policy> 
     </sp:SupportingTokens> 
     </wsp:All> 
     <wsp:All> 
     <sp:TransportBinding> 
      <wsp:Policy> 
      <sp:TransportToken> 
       <wsp:Policy> 
       <sp:HttpsToken> 
        <wsp:Policy/> 
       </sp:HttpsToken> 
       </wsp:Policy> 
      </sp:TransportToken> 
      <sp:AlgorithmSuite> 
       <wsp:Policy> 
       <sp:Basic128/> 
       </wsp:Policy> 
      </sp:AlgorithmSuite> 
      <sp:IncludeTimestamp/> 
      </wsp:Policy> 
     </sp:TransportBinding> 
     <sp:SupportingTokens> 
      <wsp:Policy> 
      <sp:UsernameToken> 
       <wsp:Policy> 
       <sp:WssUsernameToken11/> 
       </wsp:Policy> 
      </sp:UsernameToken> 
      </wsp:Policy> 
     </sp:SupportingTokens> 
     </wsp:All> 
    </wsp:ExactlyOne> 
    </wsp:Policy> 

Любая помощь или указатели?

+0

Можете ли вы показать нам свой маршрут верблюда? –

ответ