Hi Colm, I think setting the flag to false is a work around for now, but this should be considered a bug. Does it make sense?
-Vinay -----Original Message----- From: Colm O hEigeartaigh [mailto:[email protected]] Sent: Thursday, August 18, 2011 11:10 AM To: [email protected] Subject: Re: InitiatorSignatureToken Yes. You can disable this by setting the SecurityConstants tag "ws-security.is-bsp-compliant" to "false". Colm. On Thu, Aug 18, 2011 at 4:06 PM, Penmatsa, Vinay <[email protected]> wrote: > It seems the BSPEnforcer rejects the signature security token reference > without this token type attribute: > > > if (assertion.getSaml2() != null && > !WSConstants.WSS_SAML2_TOKEN_TYPE.equals(tokenType)) { > throw new WSSecurityException( > WSSecurityException.INVALID_SECURITY_TOKEN, > "invalidTokenType", > new Object[]{tokenType} > ); > } > > > -Vinay > > > -----Original Message----- > From: Penmatsa, Vinay [mailto:[email protected]] > Sent: Thursday, August 18, 2011 10:08 AM > To: [email protected] > Subject: RE: InitiatorSignatureToken > > Hi, > Thank you very much. That seems to fix the issue with generating the > signature. > But within the signature, the <SecurityTokenReference> is missing the > "TokenType" attribute. How can I get this? > I think the expected attribute is > wsse11:TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0" > > --- > <ds:KeyInfo Id="KI-FD02F514C2D45C835B13136725987011"> > <ns5:SecurityTokenReference > xmlns:ns5="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> > <ns5:KeyIdentifier > ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID">A-WS-2e366482-38f7-4aa5-b0bd-9f2363fcb5b5</ns5:KeyIdentifier> > </ns5:SecurityTokenReference> > </ds:KeyInfo> > > --- > > > -Vinay > > -----Original Message----- > From: Daniel Kulp [mailto:[email protected]] > Sent: Thursday, August 18, 2011 9:25 AM > To: [email protected] > Cc: Colm O hEigeartaigh > Subject: Re: InitiatorSignatureToken > > On Thursday, August 18, 2011 1:43:09 PM Colm O hEigeartaigh wrote: >> Could you try it with CXF 2.4.1? I may have fixed a bug related to this. >> > > Actually, try 2.4.2 if you can. If you are going to attempt an upgrade, > jump to the latest. :-) > > Dan > > >> Colm. >> >> On Thu, Aug 18, 2011 at 1:31 PM, Penmatsa, Vinay <[email protected]> > wrote: >> > CXF 2.4.0 >> > >> > >> > -Vinay >> > >> > >> > -----Original Message----- >> > From: Colm O hEigeartaigh [mailto:[email protected]] >> > Sent: Thursday, August 18, 2011 8:29 AM >> > To: [email protected] >> > Subject: Re: InitiatorSignatureToken >> > >> > What version of CXF are you using? >> > >> > Colm. >> > >> > On Thu, Aug 18, 2011 at 12:53 PM, Penmatsa, Vinay >> > >> > <[email protected]> wrote: >> >> Hi Colm, >> >> Below is my cxf config client & policy def in the wsdl. The result is >> >> that STS token is included in the message is not signed by the >> >> client. Am I missing some policy assertion? I'm getting the error: " >> >> Caused by: org.apache.cxf.binding.soap.SoapFault: An error was >> >> discovered processing the <wsse:Security> header" But when I look at >> >> the message sent, there's no signature that the service expects. When >> >> I do all this programmatically with action SAML_TOKEN_SIGNED, it >> >> works fine with the message signed. >> >> >> >> ----------- >> >> Client config: >> >> >> >> <jaxws:client >> >> xmlns:ns1="http://webservice.sap.com" >> >> id="samlTokenClient" >> >> >> >> serviceClass="com.sap.webservice.QueryServiceInterfaceConfigGenPortT >> >> ype" serviceName="ns1:QueryServiceInterfaceConfigGen" >> >> endpointName="ns1:QueryServiceInterfaceConfigGenPortSoap11" >> >> address="http://localhost:9101/sourcing/services/QueryServiceService. >> >> Soap11Endpoint" wsdlLocation="C:/temp/QueryServiceService-policy.xml"> >> >> >> >> <jaxws:properties> >> >> <entry key="ws-security.signature.properties" >> >> value="wss40_client.properties" /> <entry >> >> key="ws-security.callback-handler" >> >> value="com.sap.cxftest.client.ClientPasswordCallback"/> >> >> >> >> <entry key="ws-security.sts.client"> >> >> <bean >> >> class="org.apache.cxf.ws.security.trust.STSClient"> <constructor-arg >> >> ref="cxf" /> <property name="requiresEntropy" value="false" /> >> >> <property name="wsdlLocation" value="<STS Endpoint>" /> <property >> >> name="serviceName" >> >> value="{http://docs.oasis-open.org/ws-sx/ws-trust/200512}STS" /> >> >> <property name="endpointName" >> >> value="{http://docs.oasis-open.org/ws-sx/ws-trust/200512}UT" /> >> >> <property name="tokenType" >> >> value="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1. >> >> 1#SAMLV2.0"/> <property name="keyType" >> >> value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/PublicKey"/> >> >> <property name="properties"> <map> >> >> <entry >> >> key="ws-security.username" value="buyer44" /> <entry >> >> key="ws-security.password" value="password1" /> <!-- <entry >> >> key="ws-security.username" value="wsclient"/ --> >> >> >> >> <entry >> >> key="ws-security.signature.properties" >> >> value="wss40_client.properties" /> <entry >> >> key="ws-security.encryption.properties" value="wss40_sts.properties" >> >> /> <entry key="ws-security.encryption.username" value="sts" /> <entry >> >> key="ws-security.sts.token.properties" value="wss40_sts.properties" >> >> /> <entry key="ws-security.sts.token.username" value="sts" /> </map> >> >> </property> >> >> </bean> >> >> </entry> >> >> </jaxws:properties> >> >> >> >> </jaxws:client> >> >> >> >> ----------- >> >> Policy in WSDL: >> >> >> >> <wsp:Policy wsu:Id="SAML2Token" >> >> >> >> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w >> >> ssecurity-utility-1.0.xsd" >> >> xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" >> >> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"> >> >> <wsp:ExactlyOne> >> >> <wsp:All> >> >> <!--wsam:Addressing >> >> wsp:Optional="false"> <wsp:Policy/> </wsam:Addressing --> >> >> <sp:AsymmetricBinding> >> >> <wsp:Policy> >> >> <sp:InitiatorToken> >> >> <wsp:Policy> >> >> <sp:IssuedToken >> >> sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/2 >> >> 00702/IncludeToken/AlwaysToRecipient"> >> >> <sp:RequestSecurityTokenTemplate> >> >> <t:TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-prof >> >> ile-1.1#SAMLV2.0</t:TokenType> >> >> <t:KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/PublicKey >> >> </t:KeyType> <!--t:KeySize>256</t:KeySize--> >> >> </sp:RequestSecurityTokenTemplate> <wsp:Policy> >> >> <sp:RequireInternalReference /> </wsp:Policy> </sp:IssuedToken> >> >> </wsp:Policy> >> >> </sp:InitiatorToken> >> >> <sp:RecipientToken> >> >> <wsp:Policy> >> >> <sp:X509Token >> >> sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/2 >> >> 00702/IncludeToken/Never"> <wsp:Policy> >> >> >> >> <sp:WssX509V3Token10/> >> >> </wsp:Policy> >> >> </sp:X509Token> >> >> </wsp:Policy> >> >> </sp:RecipientToken> >> >> <sp:Layout> >> >> <wsp:Policy> >> >> <sp:Lax >> >> /> </wsp:Policy> </sp:Layout> >> >> <sp:SignedParts >> >> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"> >> >> </sp:SignedParts> <sp:OnlySignEntireHeadersAndBody /> >> >> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic256 /> <!-- To use the >> >> export grade encryption that comes bundled in the JDK, comment out >> >> the above Basic256 algorithm and uncomment the below Basic128. --> >> >> <!-- <sp:Basic128 /> --> </wsp:Policy> </sp:AlgorithmSuite> >> >> </wsp:Policy> >> >> </sp:AsymmetricBinding> >> >> </wsp:All> >> >> </wsp:ExactlyOne> >> >> </wsp:Policy> >> >> <wsdl:types> >> >> ----------- >> >> >> >> >> >> -Vinay >> >> >> >> >> >> -----Original Message----- >> >> From: Colm O hEigeartaigh [mailto:[email protected]] >> >> Sent: Thursday, August 18, 2011 7:17 AM >> >> To: [email protected] >> >> Subject: Re: InitiatorSignatureToken >> >> >> >> What does the full policy look like? That fragment looks ok to me. >> >> What error are you getting? Also, what version of CXF are you using? >> >> >> >> Colm. >> >> >> >> On Wed, Aug 17, 2011 at 10:36 PM, Penmatsa, Vinay >> >> >> >> <[email protected]> wrote: >> >>> Hi, >> >>> I'm unable to define the correct policy for SAML_TOKEN_SIGNED. The >> >>> following gets the STS token and includes it in the request, but >> >>> now I need sign the message. >> >>> >> >>> <sp:InitiatorToken> >> >>> <wsp:Policy> >> >>> <sp:IssuedToken >> >>> sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy >> >>> /200702/IncludeToken/AlwaysToRecipient"> >> >>> <sp:RequestSecurityTokenTemplate> >> >>> >> >>> <t:TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-p >> >>> rofile-1.1#SAMLV2.0</t:TokenType> >> >>> <t:KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/PublicK >> >>> ey</t:KeyType> </sp:RequestSecurityTokenTemplate> >> >>> <wsp:Policy> >> >>> <sp:RequireInternalReference /> >> >>> <wsp:Policy> >> >>> </sp:IssuedToken> >> >>> </wsp:Policy> >> >>> </sp:InitiatorToken> >> >>> >> >>> I think I've to use InitiatorSignatureToken, but not sure how. >> >>> >> >>> >> >>> Thanks, >> >>> Vinay >> >> >> >> -- >> >> Colm O hEigeartaigh >> >> >> >> http://coheigea.blogspot.com/ >> >> Talend - http://www.talend.com >> > >> > -- >> > Colm O hEigeartaigh >> > >> > http://coheigea.blogspot.com/ >> > Talend - http://www.talend.com > -- > Daniel Kulp > [email protected] > http://dankulp.com/blog > Talend - http://www.talend.com > -- Colm O hEigeartaigh http://coheigea.blogspot.com/ Talend - http://www.talend.com
