Hi Colm,

<<<<<
I merged another fix for this issue to WSS4J (
https://issues.apache.org/jira/browse/WSS-392). Please try again with the
latest WSS4J 1.6.7-SNAPSHOT jar.
>>>>>

I have a good news for you. You fix for WSS-392 worked. Nice work! My
client ran successfully. Thank you very much.
Now I have passive profile(Fediz WS-Federation) and Active profile(Apache
CXF) working with ADFS2.0(STS). Next, I am going to pipe them together to
test ActAs with ADFS2.0.

Thank again for you dedicated effort.

Gina
On Wed, Jun 13, 2012 at 8:56 AM, Colm O hEigeartaigh <[email protected]>wrote:

> Hi Gina,
>
> I merged another fix for this issue to WSS4J (
> https://issues.apache.org/jira/browse/WSS-392). Please try again with the
> latest WSS4J 1.6.7-SNAPSHOT jar.
>
> Colm.
>
> On Tue, Jun 12, 2012 at 9:05 PM, Gina Choi <[email protected]> wrote:
>
> > Hi Colm,
> >
> > <<<<
> > I've just committed a potential fix for this problem to WSS4J. Could you
> > add a dependency in your client pom to WSS4J 1.6.7-SNAPSHOT and let me
> know
> > if it works?
> > >>>>
> > Thanks for the quick fix. I passed previous NPE issue with WSS4J
> > 1.6.7-SNAPSHOT(I only applied it to client). Now I am getting
> > WSSecurityException. I have copied WSP response and error message at the
> > bottom of this email for your reference.
> > Exception is thrown at the line 217 of
> > the
> >
> org.apache.ws.security.str.SignatureSTRParser.java(wss4j-1.6.7-SNAPSHOT.jar)
> > class.
> >
> > AssertionWrapper assertion =
> SAMLUtil.getAssertionFromKeyIdentifier(secRef,
> > strElement, data, wsDocInfo);
> >
> > Further, it failed at line 105 of the following code. Inside
> > org.apache.ws.security.saml.SAMLUtil.java((wss4j-1.6.7-SNAPSHOT.jar) from
> > Line82 to Line  132. It expects that local name of the
> > token(xenc:EncryptedData) equal to "Assertion", but local name is "
> > EncryptedData".
> >
> >
> >    public static AssertionWrapper getAssertionFromKeyIdentifier(
> >        SecurityTokenReference secRef,
> >        Element strElement,
> >        RequestData request,
> >        WSDocInfo wsDocInfo
> >    ) throws WSSecurityException {
> >        String keyIdentifierValue = secRef.getKeyIdentifierValue();
> >        String type = secRef.getKeyIdentifierValueType();
> >        WSSecurityEngineResult result =
> > wsDocInfo.getResult(keyIdentifierValue);
> >        AssertionWrapper assertion = null;
> >        Element token = null;
> >        if (result != null) {
> >            assertion =
> >
> > (AssertionWrapper)result.get(WSSecurityEngineResult.TAG_SAML_ASSERTION);
> >            return assertion;
> >        } else {
> >            token =
> >                secRef.findProcessedTokenElement(
> >                    strElement.getOwnerDocument(), wsDocInfo,
> >                    request.getCallbackHandler(),
> >                    keyIdentifierValue, type
> >                );
> >            if (token != null) {
> >                if (!"Assertion".equals(token.getLocalName())) {
> >                    throw new WSSecurityException(
> >                        WSSecurityException.FAILURE, "invalidSAMLsecurity"
> >                    );
> >                }
> >                return new AssertionWrapper(token);
> >            }
> >            token =
> >                secRef.findUnprocessedTokenElement(
> >                    strElement.getOwnerDocument(), wsDocInfo,
> >                    request.getCallbackHandler(), keyIdentifierValue, type
> >                );
> >
> >            if (token == null ||
> !"Assertion".equals(token.getLocalName()))
> > {
> >                throw new WSSecurityException(
> >                    WSSecurityException.FAILURE, "invalidSAMLsecurity"
> >                );
> >            }
> >            Processor proc =
> > request.getWssConfig().getProcessor(WSSecurityEngine.SAML_TOKEN);
> >            List<WSSecurityEngineResult> samlResult =
> >                proc.handleToken(token, request, wsDocInfo);
> >            return
> >                (AssertionWrapper)samlResult.get(0).get(
> >                    WSSecurityEngineResult.TAG_SAML_ASSERTION
> >                );
> >        }
> >    }
> >
> >
> >
> >
> >  -----------------------Part of client side log -------------------
> >
> >
> >
> > Jun 12, 2012 2:20:21 PM
> > org.apache.cxf.services.DoubleItService.DoubleItPort.DoubleItPortType
> >
> > INFO: Inbound Message
> >
> > ----------------------------
> >
> > ID: 2
> >
> > Response-Code: 200
> >
> > Encoding: UTF-8
> >
> > Content-Type: text/xml;charset=UTF-8
> >
> > Headers: {Content-Length=[5284], content-type=[text/xml;charset=UTF-8],
> > Date=[Tue, 12 Jun 2012 18:20:21 GMT], Server=[Apache-Coyote/1.1]}
> >
> > Payload: <soap:Envelope xmlns:soap="
> > http://schemas.xmlsoap.org/soap/envelope/";><soap:Header><Action xmlns="
> > http://www.w3.org/2005/08/addressing"; xmlns:wsu="
> >
> >
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> > "
> > wsu:Id="Id-21392541">
> >
> http://www.example.org/contract/DoubleIt/DoubleItPortType/DoubleItResponse
> > </Action><MessageIDxmlns="
> > http://www.w3.org/2005/08/addressing"; xmlns:wsu="
> >
> >
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> > "
> >
> >
> wsu:Id="Id-27404023">urn:uuid:14a7ee50-a80b-4e8e-8a24-501a1f27c37f</MessageID><To
> > xmlns="http://www.w3.org/2005/08/addressing"; xmlns:wsu="
> >
> >
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> > "
> > wsu:Id="Id-6617884">
> > http://www.w3.org/2005/08/addressing/anonymous</To><RelatesTo xmlns="
> > http://www.w3.org/2005/08/addressing"; xmlns:wsu="
> >
> >
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> > "
> >
> >
> wsu:Id="Id-11283244">urn:uuid:c3b2508b-3b8a-4e3b-a3ce-d146073a3fc5</RelatesTo><wsse:Security
> > 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
> > "
> > soap:mustUnderstand="1"><wsu:Timestamp
> >
> >
> wsu:Id="TS-52"><wsu:Created>2012-06-12T18:20:21.062Z</wsu:Created><wsu:Expires>2012-06-12T18:25:21.062Z</wsu:Expires></wsu:Timestamp><xenc:ReferenceList
> > xmlns:xenc="http://www.w3.org/2001/04/xmlenc#";><xenc:DataReference
> > URI="#ED-54"/></xenc:ReferenceList><ds:Signature xmlns:ds="
> > http://www.w3.org/2000/09/xmldsig#";
> > Id="SIG-53"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="
> > http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod
> Algorithm="
> > http://www.w3.org/2000/09/xmldsig#hmac-sha1"/><ds:Reference
> > URI="#Id-13175005"><ds:Transforms><ds:Transform Algorithm="
> > http://www.w3.org/2001/10/xml-exc-c14n#
> "/></ds:Transforms><ds:DigestMethod
> > Algorithm="http://www.w3.org/2000/09/xmldsig#sha1
> >
> "/><ds:DigestValue>1qaC4/pteNP1OxZYGlIaeO9JnNg=</ds:DigestValue></ds:Reference><ds:Reference
> > URI="#Id-6617884"><ds:Transforms><ds:Transform Algorithm="
> > http://www.w3.org/2001/10/xml-exc-c14n#
> "/></ds:Transforms><ds:DigestMethod
> > Algorithm="http://www.w3.org/2000/09/xmldsig#sha1
> >
> "/><ds:DigestValue>AgU1e6t+Kz/maMvdm+LjtMSOT88=</ds:DigestValue></ds:Reference><ds:Reference
> > URI="#Id-27404023"><ds:Transforms><ds:Transform Algorithm="
> > http://www.w3.org/2001/10/xml-exc-c14n#
> "/></ds:Transforms><ds:DigestMethod
> > Algorithm="http://www.w3.org/2000/09/xmldsig#sha1
> >
> "/><ds:DigestValue>sn+kmoST3NluP8jcFrre1Z3dLKE=</ds:DigestValue></ds:Reference><ds:Reference
> > URI="#Id-11283244"><ds:Transforms><ds:Transform Algorithm="
> > http://www.w3.org/2001/10/xml-exc-c14n#
> "/></ds:Transforms><ds:DigestMethod
> > Algorithm="http://www.w3.org/2000/09/xmldsig#sha1
> >
> "/><ds:DigestValue>WmIxk6sQRlvmi0mlXbm1Emm+zg4=</ds:DigestValue></ds:Reference><ds:Reference
> > URI="#Id-21392541"><ds:Transforms><ds:Transform Algorithm="
> > http://www.w3.org/2001/10/xml-exc-c14n#
> "/></ds:Transforms><ds:DigestMethod
> > Algorithm="http://www.w3.org/2000/09/xmldsig#sha1
> >
> "/><ds:DigestValue>aOhKo4T8h5RibX7oHoA716O0x/4=</ds:DigestValue></ds:Reference><ds:Reference
> > URI="#TS-52"><ds:Transforms><ds:Transform Algorithm="
> > http://www.w3.org/2001/10/xml-exc-c14n#
> "/></ds:Transforms><ds:DigestMethod
> > Algorithm="http://www.w3.org/2000/09/xmldsig#sha1
> >
> "/><ds:DigestValue>yRbx7ao7zPuxMcVZCHJ07F/seGc=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>phUYBjMU8fePqv+08yIBdfS3Gys=</ds:SignatureValue><ds:KeyInfo
> > Id="KI-36455561753DCD790C133952522106235"><wsse:SecurityTokenReference
> > xmlns:wsse11="
> > http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd";
> > wsse11:TokenType="
> > http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1
> "
> > wsu:Id="STR-36455561753DCD790C133952522106236"><wsse:KeyIdentifier
> > ValueType="
> >
> >
> http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID
> >
> ">_ee537478-0ff0-4423-8fef-21aff2633353</wsse:KeyIdentifier></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature></wsse:Security></soap:Header><soap:Body
> > xmlns:wsu="
> >
> >
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> > "
> > wsu:Id="Id-13175005"><xenc:EncryptedData xmlns:xenc="
> > http://www.w3.org/2001/04/xmlenc#"; Id="ED-54" Type="
> > http://www.w3.org/2001/04/xmlenc#Content";><xenc:EncryptionMethod
> > Algorithm="
> > http://www.w3.org/2001/04/xmlenc#aes256-cbc"/><ds:KeyInfo xmlns:ds="
> > http://www.w3.org/2000/09/xmldsig#";><wsse:SecurityTokenReference
> > xmlns:wsse11="
> > http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd";
> > xmlns:wsse="
> >
> >
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
> > "
> > wsse11:TokenType="
> > http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1
> > "><wsse:KeyIdentifier
> > ValueType="
> >
> >
> http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID
> >
> >
> ">_ee537478-0ff0-4423-8fef-21aff2633353</wsse:KeyIdentifier></wsse:SecurityTokenReference></ds:KeyInfo><xenc:CipherData><xenc:CipherValue>6WkAa0DPtBlT7HPhOof9rz2mAD1d4rC+3ArAav06B2UwZohawM/8ydSrhalqGmkolyFydGLJUah3zo57zZSjt5m+VoctQ9QIbdzdz02ERE34aJe9vF3pmn083obo1ouAOFLlBbkViShYtJi6eO2ir8+N+OBQ8TsJHYf07LUwyHtvjhxh30htbUEyoAWlY1NZfurAGqLmL/4FSWaqyDArYQ==</xenc:CipherValue></xenc:CipherData></xenc:EncryptedData></soap:Body></soap:Envelope>
> >
> > --------------------------------------
> >
> > Jun 12, 2012 3:18:39 PM
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor
> > handleMessage
> >
> > WARNING:
> >
> > *org.apache.ws.security.WSSecurityException*: General security error
> (SAML
> > token security failure)
> >
> >       at
> > org.apache.ws.security.saml.SAMLUtil.getAssertionFromKeyIdentifier(*
> > SAMLUtil.java:107*)
> >
> >       at
> >
> org.apache.ws.security.str.SignatureSTRParser.parseSecurityTokenReference(*
> > SignatureSTRParser.java:217*)
> >
> >       at
> org.apache.ws.security.processor.SignatureProcessor.handleToken(*
> > SignatureProcessor.java:164*)
> >
> >       at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(*
> > WSSecurityEngine.java:396*)
> >
> >       at
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(
> > *WSS4JInInterceptor.java:289*)
> >
> >       at
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(
> > *WSS4JInInterceptor.java:97*)
> >
> >       at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(*
> > PhaseInterceptorChain.java:262*)
> >
> >       at
> org.apache.cxf.endpoint.ClientImpl.onMessage(*ClientImpl.java:798*
> > )
> >
> >       at
> >
> >
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(
> > *HTTPConduit.java:1679*)
> >
> >       at
> >
> >
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(
> > *HTTPConduit.java:1532*)
> >
> >       at
> > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(*
> > HTTPConduit.java:1440*)
> >
> >       at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(*
> > CacheAndWriteOutputStream.java:47*)
> >
> >       at org.apache.cxf.io.CachedOutputStream.close(*
> > CachedOutputStream.java:187*)
> >
> >       at org.apache.cxf.transport.AbstractConduit.close(*
> > AbstractConduit.java:56*)
> >
> >       at org.apache.cxf.transport.http.HTTPConduit.close(*
> > HTTPConduit.java:658*)
> >
> >       at
> >
> >
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(
> > *MessageSenderInterceptor.java:62*)
> >
> >       at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(*
> > PhaseInterceptorChain.java:262*)
> >
> >       at
> org.apache.cxf.endpoint.ClientImpl.doInvoke(*ClientImpl.java:532*)
> >
> >       at org.apache.cxf.endpoint.ClientImpl.invoke(*ClientImpl.java:464*)
> >
> >       at org.apache.cxf.endpoint.ClientImpl.invoke(*ClientImpl.java:367*)
> >
> >       at org.apache.cxf.endpoint.ClientImpl.invoke(*ClientImpl.java:320*)
> >
> >       at org.apache.cxf.frontend.ClientProxy.invokeSync(*
> > ClientProxy.java:89*)
> >
> >       at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(*
> > JaxWsClientProxy.java:134*)
> >
> >       at $Proxy26.doubleIt(Unknown Source)
> >
> >       at client.WSClient.doubleIt(*WSClient.java:18*)
> >
> >       at client.WSClient.main(*WSClient.java:11*)
> >
>
>
>
> --
> Colm O hEigeartaigh
>
> Talend Community Coder
> http://coders.talend.com
>

Reply via email to