I am using 
camel: 2.12.1
spring: 4.0.5.RELEASE
CXF : 2.7.13

My goal is to deliver a soap message with wsse:security header(as mentioned
below) in Payload mode from my camel router to some endpoint.

<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>

To achieve this, I have created a config file which has the below entry

<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>

But not sure how can I use this file or call this somewhere in route or some
other spring config file , so that I can have a soap header in my out going
message.

I am currently getting the exception

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]
        
My wsdl's policy is as below:

 <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>




--
View this message in context: 
http://camel.465427.n5.nabble.com/Issue-with-adding-wsse-security-header-in-Apache-Camel-Route-tp5758106.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to