Hello, I have modified the policy at the server side in order to add a signed part (body) in the response. If I dump the exchanges, the good news is that now I got no error from the server but I got one at the client side: seems that the signature coming from the server was invalid :-(
My code looks like: Map<String, Object> ctx = ((BindingProvider) port).getRequestContext(); ctx.put("ws-security.username", "myClientKeystoreAlias"); ctx.put("ws-security.callback-handler", ClientX509CB.class.getName()); ctx.put("ws-security.signature.properties", "clientKeystore.properties"); where clientKeystore.properties contains: org.apache.ws.security.crypto.merlin.keystore.file=myClientKeystore.jks org.apache.ws.security.crypto.merlin.keystore.password=myClientKeystorePassword org.apache.ws.security.crypto.merlin.keystore.type=jks org.apache.ws.security.crypto.merlin.keystore.alias= myClientKeystoreAlias So the clientKeystore is used for signing the SOAP request sent to the server but how can the client verify the server signature ? What can I do ? What information is missing ? Best Regards. -----Original Message----- From: Colm O hEigeartaigh [mailto:cohei...@apache.org] Sent: vendredi 13 avril 2012 15:01 To: COURTAULT Francois Cc: users@cxf.apache.org Subject: Re: Aware of compatibility issue between CXF and Metro/Weblogic ? > - *if* message level signature is used in the request: how do you know > that message level signature is required ? By the use of a SignedParts or SignedElements policy. > More generally, in the ws-securitypolicy-1.3-spec-os.pdf document there no > real explanation about the meaning of OnlySignEntireHeadersAndBody. So my own > interpretation, for this one, is that: > - a signature is required for each header blocks and for the body: no > need to say more. That's not my interpretation of the spec. As I said previously, my reading is that a signature can't be on a Body or Header child element if it exists. I agree that the spec isn't exactly clear though. What's the problem with just including a SignedParts policy? Colm. On Fri, Apr 13, 2012 at 1:55 PM, COURTAULT Francois <francois.courta...@gemalto.com> wrote: > Hello, > > Thanks for your answer. > But I still have one question: > - *if* message level signature is used in the request: how do you know > that message level signature is required ? I was expecting that this is the > purpose of the policy you attach to a webservice endpoint and, in my case, > OnlySignEntireHeadersAndBody policy means that signature is required at > message level. > > More generally, in the ws-securitypolicy-1.3-spec-os.pdf document there no > real explanation about the meaning of OnlySignEntireHeadersAndBody. So my own > interpretation, for this one, is that: > - a signature is required for each header blocks and for the body: no > need to say more. > > So, just for me to know: where did you find such information with more > details regarding OnlySignEntireHeadersAndBody ? > > Best Regards. > > -----Original Message----- > From: Colm O hEigeartaigh [mailto:cohei...@apache.org] > Sent: vendredi 13 avril 2012 12:02 > To: COURTAULT Francois > Subject: Re: Aware of compatibility issue between CXF and Metro/Weblogic ? > > Hi Francois, > > My reading of the spec is that a "OnlySignEntireHeadersAndBody" policy means > that *if* message level signature is used in the request, then it must not be > a child element of the SOAP Body, or a child element of a particular header, > excepting the security header. It does not mandate that signature must be > performed, only that if signature is performed it must conform to that > policy. Therefore, a SignedParts or SignedElements policy is needed to > specify what must actually be signed. > > Colm. > > > On Thu, Apr 12, 2012 at 11:32 AM, COURTAULT Francois > <francois.courta...@gemalto.com> wrote: >> Hello, >> >> I have looked at the security policy spec (1.3) and it seems that >> SignedParts is OPTIONAL: right ? >> However this spec is not clear at all regarding the relationship >> between the <sp:OnlySignEntireHeadersAndBody/> directive and the >> <sp:SignedParts/> directive :-( Does the presence of the >> <sp:OnlySignEntireHeadersAndBody/> directive requires the <sp:SignedParts/> >> directive ? >> >> Any spec or document which can provide more clear explanation about the >> relationship between these 2 above directives ? >> So let's suppose that the <sp:OnlySignEntireHeadersAndBody/> could be used >> alone, in such case does it mean that all the security headers and the body >> have to be signed ? >> >> Best Regards. >> >> -----Original Message----- >> From: COURTAULT Francois [mailto:francois.courta...@gemalto.com] >> Sent: mercredi 11 avril 2012 17:59 >> To: cohei...@apache.org >> Cc: users@cxf.apache.org >> Subject: RE: Aware of compatibility issue between CXF and Metro/Weblogic ? >> Importance: High >> >> Hello, >> >> Regarding your last question: Is there such a policy in your WSDL? >> I have looked at the policy used (attached) and I only see >> <sp:OnlySignEntireHeadersAndBody/> with no SignedParts. >> So my question is: with the policy used(attached), is it required or not to >> sign the body ? >> >> A corollary question is, with only the <sp:OnlySignEntireHeadersAndBody/> >> directive in the policy, the webservice endpoint has to accept only SOAP >> request with at least a body signature ? >> >> Best Regards. >> >> -----Original Message----- >> From: Colm O hEigeartaigh [mailto:cohei...@apache.org] >> Sent: mercredi 11 avril 2012 17:21 >> To: COURTAULT Francois >> Subject: Re: Aware of compatibility issue between CXF and Metro/Weblogic ? >> >> Hi Francois, >> >>> - first, for them, in the <dsig:KeyInfo> section, they refer >>> the wsse11 namespace which is used in >>> wsse11:TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3". >>> Is this TokenType mandatory ? >> >> Not according to my reading of the Basic Security Profile 1.1: >> >> http://www.ws-i.org/profiles/basicsecurityprofile-1.1.html#x509tokent >> y >> pes >> >> They give the example: >> >> CORRECT: >> >> <wsse:SecurityTokenReference> >> <wsse:KeyIdentifier >> EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" >> >> ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509SubjectKeyIdentifier" >>> >> MIGfMa0GCSq >> </wsse:KeyIdentifier> >> </wsse:SecurityTokenReference> >> >>> - second, in the <ds:SignedInfo> section, the body signature seems missing >>> in the CXF SOAP request. Is it normal ? >> >> CXF will only sign the SOAP Body if there is a SignedParts policy that >> specifies the SOAP Body. Is there such a policy in your WSDL? >> >> Colm. >> >> >> On Wed, Apr 11, 2012 at 3:56 PM, COURTAULT Francois >> <francois.courta...@gemalto.com> wrote: >>> Hello again, >>> >>> I have forwarded your answer to the Oracle support. They replied me 2 >>> things: >>> - first, for them, in the <dsig:KeyInfo> section, they refer the >>> wsse11 namespace which is used in >>> wsse11:TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3". >>> Is this TokenType mandatory ? >>> >>> - second, in the <ds:SignedInfo> section, the body signature seems >>> missing in the CXF SOAP request. Is it normal ? >>> * In Weblogic request: >>> <dsig:SignedInfo> >>> <dsig:CanonicalizationMethod >>> >>> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> >>> <dsig:SignatureMethod >>> Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> >>> <dsig:Reference >>> URI="#Timestamp_WF911A291H4C9EVH"> >>> <dsig:Transforms> >>> >>> <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" >>> /> >>> </dsig:Transforms> >>> <dsig:DigestMethod >>> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> >>> >>> <dsig:DigestValue>FQdxW5uhQYvIlEjZ5eF6FwD0WWM=</dsig:DigestValue> >>> </dsig:Reference> >>> <dsig:Reference >>> URI="#Body_6e1VPrhuvqnQBAe6"> >>> <dsig:Transforms> >>> >>> <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" >>> /> >>> </dsig:Transforms> >>> <dsig:DigestMethod >>> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> >>> >>> <dsig:DigestValue>hqQ8dypeB6mi9otTZftZ9wdaIpQ=</dsig:DigestValue> >>> </dsig:Reference> >>> <dsig:Reference >>> URI="#bst_156mJ1UUoTA9ZP7b"> >>> <dsig:Transforms> >>> >>> <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" >>> /> >>> </dsig:Transforms> >>> <dsig:DigestMethod >>> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> >>> >>> <dsig:DigestValue>dmD/DqmQIf+LrHjcOgxLKhpCvZE=</dsig:DigestValue> >>> </dsig:Reference> >>> </dsig:SignedInfo> >>> >>> * In CXF request: >>> <ds:SignedInfo> >>> <ds:CanonicalizationMethod >>> >>> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> >>> <ec:InclusiveNamespaces >>> xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" >>> >>> PrefixList="soap"></ec:InclusiveNamespaces> >>> </ds:CanonicalizationMethod> >>> <ds:SignatureMethod >>> Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:Signatur >>> e >>> M >>> ethod> >>> <ds:Reference URI="#TS-1"> >>> <ds:Transforms> >>> <ds:Transform >>> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> >>> >>> <ec:InclusiveNamespaces >>> >>> xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wsse >>> soap"></ec:InclusiveNamespaces> >>> >>> </ds:Transform> >>> </ds:Transforms> >>> <ds:DigestMethod >>> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod >>> > >>> >>> <ds:DigestValue>qqnMVp6ogLp4FbJuMaenBdYlm3E=</ds:DigestValue> >>> </ds:Reference> >>> <ds:Reference >>> URI="#X509-A8BAAB773C57F7C94113313097001254"> >>> <ds:Transforms> >>> <ds:Transform >>> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> >>> >>> <ec:InclusiveNamespaces >>> >>> xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" >>> PrefixList="soap"></ec:InclusiveNamespaces> >>> >>> </ds:Transform> >>> </ds:Transforms> >>> <ds:DigestMethod >>> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod >>> > >>> >>> <ds:DigestValue>YZ0E9NbYropID0uM5ZQInOgSmYA=</ds:DigestValue> >>> </ds:Reference> >>> </ds:SignedInfo> >>> >>> Best Regards. >>> >>> -----Original Message----- >>> From: Colm O hEigeartaigh [mailto:cohei...@apache.org] >>> Sent: mardi 10 avril 2012 17:18 >>> To: COURTAULT Francois >>> Cc: users@cxf.apache.org >>> Subject: Re: Aware of compatibility issue between CXF and Metro/Weblogic ? >>> >>>> So according to them, the following namespaces are missing in the CXF >>>> request: >>>> - wsu >>>> - wsse >>> >>> This is incorrect as both of these namespaces are defined in the security >>> header element. >>> >>> Colm. >>> >>> On Tue, Apr 10, 2012 at 3:38 PM, COURTAULT Francois >>> <francois.courta...@gemalto.com> wrote: >>>> Hello, >>>> >>>> Just to inform you I have also entered an issue in MOS (My Oracle Support). >>>> >>>> The answer they gave me was that, >>>> In the Weblogic client request I had: >>>> >>>> <dsig:KeyInfo> >>>> <wsse:SecurityTokenReference >>>> >>>> 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" >>>> >>>> wsse11:TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" >>>> >>>> wsu:Id="str_4RaFdeoK8oynP98t"> >>>> <wsse:KeyIdentifier >>>> >>>> EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" >>>> >>>> ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-se >>>> c >>>> u >>>> r >>>> ity-1.1#ThumbprintSHA1">tDqtOB05FR2Q/BUdXx1X8rzDXMg=</wsse:KeyIdent >>>> i >>>> f >>>> i >>>> er> >>>> >>>> </wsse:SecurityTokenReference> >>>> </dsig:KeyInfo> >>>> >>>> Whereas, in the CXF client (CXF 2.5.3 SNAPSHOT), I had: >>>> >>>> <ds:KeyInfo >>>> Id="KI-A8BAAB773C57F7C94113313097001252"> >>>> <wsse:SecurityTokenReference >>>> wsu:Id="STR-A8BAAB773C57F7C94113313097001253"> >>>> <wsse:KeyIdentifier >>>> >>>> EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" >>>> >>>> ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-se >>>> c >>>> u >>>> r >>>> ity-1.1#ThumbprintSHA1">tDqtOB05FR2Q/BUdXx1X8rzDXMg=</wsse:KeyIdent >>>> i >>>> f >>>> i >>>> er> >>>> >>>> </wsse:SecurityTokenReference> >>>> </ds:KeyInfo> >>>> >>>> So according to them, the following namespaces are missing in the CXF >>>> request: >>>> - wsu >>>> - wsse >>>> >>>> Do you agree ? If yes can we have a fix for that please ? >>>> >>>> Best Regards. >>>> >>>> -----Original Message----- >>>> From: COURTAULT Francois >>>> Sent: vendredi 9 mars 2012 17:36 >>>> To: 'cohei...@apache.org' >>>> Cc: users@cxf.apache.org >>>> Subject: RE: Aware of compatibility issue between CXF and Metro/Weblogic ? >>>> >>>> Hello, >>>> >>>> I have picked up the 2.5.3-20120309.061736-28 snapshot. >>>> In the SOAP request I saw now, in the SOAP request, the >>>> <wsse:KeyIdentifier> section in the <dsig:KeyInfo> >>>> <wsse:SecurityTokenReference> section :-) (thanks for this fix) but I >>>> still have a SOAP fault in the response coming from Weblogic :-(. >>>> >>>> Do you have an idea as I haven't so much information (log) on the Weblogic >>>> side ? >>>> >>>> Best Regards. >>>> >>>> -----Original Message----- >>>> From: Daniel Kulp [mailto:dk...@apache.org] >>>> Sent: mercredi 7 mars 2012 19:38 >>>> To: users@cxf.apache.org >>>> Subject: Re: Aware of compatibility issue between CXF and Metro/Weblogic ? >>>> >>>> On Tuesday, March 06, 2012 06:52:41 PM COURTAULT Francois wrote: >>>>> Hello, >>>>> >>>>> Thanks for the feedback :-) >>>>> According to the issue, it should be fixed in the 2.5.3 release: right ? >>>>> When this version will be released ? >>>> >>>> Likely in a couple weeks. We did a release on Jan 25th and we >>>> normally shoot for about every 8 weeks or so. >>>> >>>> Dan >>>> >>>> >>>>> >>>>> Best Regards. >>>>> >>>>> -----Original Message----- >>>>> From: Colm O hEigeartaigh [mailto:cohei...@apache.org] >>>>> Sent: mardi 6 mars 2012 18:36 >>>>> To: users@cxf.apache.org >>>>> Subject: Re: Aware of compatibility issue between CXF and Metro/Weblogic ? >>>>> >>>>> It's an issue in CXF: >>>>> >>>>> https://issues.apache.org/jira/browse/CXF-4166 >>>>> >>>>> I'll merge a fix shortly. >>>>> >>>>> Colm. >>>>> >>>>> On Tue, Mar 6, 2012 at 3:13 PM, COURTAULT Francois >>>> <francois.courta...@gemalto.com> wrote: >>>>> > Hello Glen, >>>>> > >>>>> > The two issues (WSIT-1490 and WSIT-1590) you mention seem not >>>>> > related to the issue I have got :-( I am not using STS (WS-Trust) at >>>>> > all: >>>>> > - WSIT-1490: no SAML used in the KeyIdentifier with a >>>>> > #uuid in the SOAP request. - WSIT-1590: no encoded email in the SOAP >>>>> > request. >>>>> > >>>>> > Best Regards. >>>>> > >>>>> > -----Original Message----- >>>>> > From: Glen Mazza [mailto:gma...@talend.com] >>>>> > Sent: mardi 6 mars 2012 15:20 >>>>> > To: users@cxf.apache.org >>>>> > Subject: Re: Aware of compatibility issue between CXF and >>>>> > Metro/Weblogic ? >>>>> > >>>>> > There's a couple of problems that seem to be on Metro's side >>>>> > (http://java.net/jira/browse/WSIT-1490, >>>>> > http://java.net/jira/browse/WSIT-1590) affecting >>>>> > interoperability between the two stacks. It would be great if >>>>> > these were fixed, as both Metro and CXF are better off the more >>>>> > interoperable they are with each other. Feel free to vote for >>>>> > these two issues. :) >>>>> > >>>>> > Glen >>>>> > >>>>> > On 03/06/2012 07:03 AM, COURTAULT Francois wrote: >>>>> >> Hello, >>>>> >> >>>>> >> I have tried to write a CXF client which talks to a WSS >>>>> >> protected >>>>> >> (X509Token) webservice hosted in Weblogic (Metro based) but >>>>> >> unfortunately I got a Soap fault error. >>>>> >> >>>>> >> If I compare a soap request which works and the one generated >>>>> >> by CXF, the only difference I have seen is that in >>>>> >> the<dsig:KeyInfo> <wsse:SecurityTokenReference> section, I >>>>> >> have a<wsse:KeyIdentifier> section in the one which succeeded >>>>> >> whereas I haven't this section in the CXF one. >>>>> >> >>>>> >> Any advice ? Any idea ? >>>>> >> >>>>> >> Best Regards. >>>>> > >>>>> > -- >>>>> > Glen Mazza >>>>> > Talend Community Coders - coders.talend.com >>>>> > blog: www.jroller.com/gmazza >>>>> >>>>> -- >>>>> Colm O hEigeartaigh >>>>> >>>>> Talend Community Coder >>>>> http://coders.talend.com >>>> -- >>>> Daniel Kulp >>>> dk...@apache.org - http://dankulp.com/blog Talend Community Coder - >>>> http://coders.talend.com >>>> >>> >>> >>> >>> -- >>> Colm O hEigeartaigh >>> >>> Talend Community Coder >>> http://coders.talend.com >> >> >> >> -- >> Colm O hEigeartaigh >> >> Talend Community Coder >> http://coders.talend.com > > > > -- > Colm O hEigeartaigh > > Talend Community Coder > http://coders.talend.com -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com