I am writing a SOAP proxy. When a SOAP service call comes in, it goes to a
CXF consumer->Processor->CXF producer (with WS-Security)
Since the incoming service call and the outgoing service call are from
different wsdl and thus different namespace, I would need to transform the
information. How can I achieve this and then have the message body ready to
pass on to the cxf:bean:realSerive?
Thanks.
<camel:route id="toreal">
<camel:from uri="cxf:bean:myProxy" />
<camel:to uri="bean:myProcessorr" />
<camel:to uri="cxf:bean:realService" />
</camel:route>
<bean id="wss4jInInterceptor-client"
class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken Timestamp Signature Encrypt" />
<entry key="passwordCallbackClass"
value="com.sms.dcp.KeystorePasswordCallback" />
<entry key="decryptionPropFile"
value="wssecurity/etc/Server_Decrypt.properties"/>
<entry key="encryptionKeyIdentifier" value="IssuerSerial" />
<entry key="signaturePropFile"
value="cms-files/cms-trusted-crypto-PDT.properties" />
<entry key="signatureKeyIdentifier" value="DirectReference" />
</map>
</constructor-arg>
</bean>
<cxf:cxfEndpoint id="edocumentVA" address="${VA_URL}"
endpointName="...." serviceName="...."
wsdlURL="wsdl/PDT/service.wsdl" serviceClass="DocumentService"
xmlns:s="http://x.y.z/external/DocumentService/">
<cxf:properties>
<entry key="mtom-enabled" value="${MTOM_ENABLED}" />
<entry key="dataFormat" value="CXF_MESSAGE" />
</cxf:properties>
<cxf:inInterceptors>
<ref bean="wss4jInInterceptor-client" />
</cxf:inInterceptors>
</cxf:cxfEndpoint>
CXF consumer->Processor->CXF producer (with WS-Security)
Since the incoming service call and the outgoing service call are from
different wsdl and thus different namespace, I would need to transform the
information. How can I achieve this and then have the message body ready to
pass on to the cxf:bean:realSerive?
Thanks.
<camel:route id="toreal">
<camel:from uri="cxf:bean:myProxy" />
<camel:to uri="bean:myProcessorr" />
<camel:to uri="cxf:bean:realService" />
</camel:route>
<bean id="wss4jInInterceptor-client"
class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken Timestamp Signature Encrypt" />
<entry key="passwordCallbackClass"
value="com.sms.dcp.KeystorePasswordCallback" />
<entry key="decryptionPropFile"
value="wssecurity/etc/Server_Decrypt.properties"/>
<entry key="encryptionKeyIdentifier" value="IssuerSerial" />
<entry key="signaturePropFile"
value="cms-files/cms-trusted-crypto-PDT.properties" />
<entry key="signatureKeyIdentifier" value="DirectReference" />
</map>
</constructor-arg>
</bean>
<cxf:cxfEndpoint id="edocumentVA" address="${VA_URL}"
endpointName="...." serviceName="...."
wsdlURL="wsdl/PDT/service.wsdl" serviceClass="DocumentService"
xmlns:s="http://x.y.z/external/DocumentService/">
<cxf:properties>
<entry key="mtom-enabled" value="${MTOM_ENABLED}" />
<entry key="dataFormat" value="CXF_MESSAGE" />
</cxf:properties>
<cxf:inInterceptors>
<ref bean="wss4jInInterceptor-client" />
</cxf:inInterceptors>
</cxf:cxfEndpoint>