Hi, This is another thread about accessing the SOAP headers through CXF.
The purpose of my app : "Broadcast Authentificated & an Authorizated resources from a Server to some customers". I have done the Authentification part with SAML assertion & X509Certificate -> it works pretty good. But I'm stucked with the SOAP headers -> I only get the SOAP body. I saw this issue in many threads but I haven't succeeded in resolving it. >>> I wanna get the SOAP headers into a CXF-SE in order to do the >>> authorization part (LDAP). <<< Or is there any other solution ? Apparently, SOAP headers could be obtained with : SOAPMessage.getSOAPHeader() : http://download.oracle.com/javase/6/docs/api/javax/xml/soap/SOAPMessage.html#getSOAPHeader() JbiConstants.PROTOCOL_HEADERS : http://servicemix.apache.org/common-headers.html ________________ What I'm using : * smx 4.3.0 * cxf 2.0.7 * maven-compiler 1.5 * jbi-maven-plugin 4.3 * CXF-BC & CXF-SE interceptors * WSDL2JAVA Here's my code : ________________ CXF-BC.pom.xml : ---------------- <dependency> <groupId>org.apache.servicemix</groupId> <artifactId>servicemix-cxf-bc</artifactId> <version>2010.01</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-bindings-soap</artifactId> <version>${cxf-version}</version> </dependency> I'm not using any <map>. CXF-BC.xbean.xml : ------------------ <cxfbc:consumer wsdl="classpath:service.wsdl" targetService="LDataService:LabelledDataService" targetInterface="LDataService:LabelledDataPortType"> <cxfbc:inInterceptors> <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/> <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/> <bean class="corp.InInterceptor"/> </cxfbc:inInterceptors> <cxfbc:outInterceptors> <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/> </cxfbc:outInterceptors> </cxfbc:consumer> I leave the CXF-BC-corp.InInterceptor.java blank if you have any suggestion. I have tried several source codes and no one is working in my case so I'm open to any suggestion. ============= It's nearly the same thing for the CXF-SE side. ============= What I get in the SMX-logs : ID: 20 Address: /LabelledDataService/ Encoding: UTF-8 Content-Type: text/xml; charset=UTF-8 Headers: {content-type=[text/xml; charset=UTF-8], connection=[keep-alive], Host=[localhost:8193], Content-Length=[3385], SOAPAction=[""], User-Agent=[JAX-WS RI 2.2.3-b01-], Content-Type=[text/xml ; charset=UTF-8], Accept=[text/xml, multipart/related], Pragma=[no-cache], Cache-Control=[no-cache]} Payload: <?xml version="1.0" ?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <S:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsse11="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" S:mustUnderstand="1"> <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="..." IssueInstant="2011-07-26T15:05:25Z" Version="2.0"> <saml:Issuer>www.corp</saml:Issuer> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:CanonicalizationMethod> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod> <ds:Reference URI="#..."> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod> <ds:DigestValue>...=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>...</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>...</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <saml:Subject> <saml:NameID>BigUser</saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:sender-vouches"></saml:SubjectConfirmation> </saml:Subject> </saml:Assertion> <wsu:Timestamp wsu:Id="..."> <wsu:Created>2011-07-26T15:05:25Z</wsu:Created> <wsu:Expires>2011-07-26T15:10:25Z</wsu:Expires> </wsu:Timestamp> </wsse:Security> </S:Header> <S:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="..."> <LabelledData xmlns="http://csc/iam/esb/types"><identifier>001</identifier></LabelledData> </S:Body> </S:Envelope> -------------------------------------- 17:05:26,109 | INFO | ovider-thread-26 | AbstractLoggingInterceptor | ? ? | - - | Inbound Message ---------------------------- ID: 21 Content-Type: text/xml Headers: Payload: <jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://corp" type="msg:LabelledDataRequest" name="LabelledDataRequest" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <jbi:part><part:LabelledData xmlns:part="http:/corp/types"><part:identifier>001</part:identifier></part:LabelledData></jbi:part> </jbi:message> -------------------------------------- 17:05:26,125 | INFO | ovider-thread-26 | AbstractLoggingInterceptor | ? ? | - - | Outbound Message --------------------------- ID: 21 Encoding: UTF-8 Content-Type: text/xml Headers: Payload: <jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://corp" type="msg:LabelledDataResponse"> <jbi:part><LabelledDataResponse xmlns="http://corp/types"><codeResult>2</codeResult></LabelledDataResponse></jbi:part> </jbi:message> -------------------------------------- 17:05:26,125 | INFO | qtp12819839-122 | AbstractLoggingInterceptor | ? ? | - - | Outbound Message --------------------------- ID: 20 Encoding: UTF-8 Content-Type: text/xml Headers: {} Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><LabelledDataResponse xmlns="http://corp/types"><codeResult>2</codeResult></LabelledDataResponse></soap:Body></soap:Envelope> Thank you in advance. Maxime. -- View this message in context: http://servicemix.396122.n5.nabble.com/CXF-SOAP-Headers-tp4637980p4637980.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
