What's the full stack-trace?

On Thu, Jan 25, 2018 at 1:44 PM, Tóth Csaba <[email protected]> wrote:

> Hello!
> Yes, after I deleted it, its begin to parse the SAML.
> the next error is about the SigVerCrypto is empty at the
> SignatureTrustValidator.validate step.
>  (get from the RequestData.sigVerCrypto)
>
> I set up the thing:
>
> <bean id="cryptoProperties" class="java.util.Properties">
>     <constructor-arg>
>         <props>
>             <prop
> key="org.apache.ws.security.crypto.provider">org.apache.
> ws.security.components.crypto.Merlin</prop>
>             <prop
> key="org.apache.ws.security.crypto.merlin.keystore.type">jks</prop>
>             <prop
> key="org.apache.ws.security.crypto.merlin.keystore.password"> .... </prop>
>             <prop
> key="org.apache.ws.security.crypto.merlin.file">key/key.jks</prop>
>         </props>
>     </constructor-arg>
> </bean>
>     <bean id="utSTSProperties"
> class="org.apache.cxf.sts.StaticSTSProperties">
>         <property name="SignatureCryptoProperties"
> ref="cryptoProperties"/>
>     ....
>     </bean>
>
> and put the keyfile under the WEB-INF/classes/key
> (in the keyfile the keys for signing the new SAML)
>
> Thanx
> Csaba
>
>
> On 2018.01.25. 13:40, Colm O hEigeartaigh wrote:
> > Do you mean that there was a "saml2p:Status" element in the security
> header
> > before the Assertion? If so then this is not valid, only the SAML
> Assertion
> > should be there.
> >
> > Colm.
> >
> > On Thu, Jan 25, 2018 at 8:47 AM, Tóth Csaba <[email protected]> wrote:
> >
> >> Hello!
> >>
> >> I dig deeper in the code:
> >> The problem with the SAML was:
> >> In the securty element contains not only the SAML, its contains before
> >> the SAML an
> >> <saml2:Issuer> and an <saml2p:Status> element
> >> (in his case The same is not processed)
> >>
> >> If I delete it, its go thru the SAML validator
> >>
> >> Csaba
> >>
> >> On 2018.01.24. 19:25, Tóth Csaba wrote:
> >>> Hello!
> >>> Thanx. I changed the namespace, but not helped.
> >>>
> >>> The DefaultSubjectProvider cant retrieve the subject from this SAML:
> >>>
> >>> <saml2:Assertion ID="..." IssueInstant="..." Version="2.0"
> >>> xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
> >>>
> >>>     <saml2:Subject>
> >>>         <saml2:NameID
> >>> Format="urn:oasis:names:tc:SAML:2.0:nameid-format:
> >> persistent">[name]</saml2:NameID>
> >>>         <saml2:SubjectConfirmation
> >>> Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
> >>>             <saml2:SubjectConfirmationData
> >>> InResponseTo="_9c7644ce0fb93649cd2ca77bb9b5e6db22f68b52a9"
> >>> NotOnOrAfter="2018-01-24T18:06:33.305Z"/>
> >>>         </saml2:SubjectConfirmation>
> >>>     </saml2:Subject>
> >>>
> >>> </saml2:Assertion>
> >>>
> >>> But I get an error, because the subject is null
> >>> (At this point I cant change the SAML in the request)
> >>>
> >>> Thanx
> >>>
> >>> Csaba
> >>>
> >>> On 2018.01.24. 10:55, Colm O hEigeartaigh wrote:
> >>>> The problem I think is that "http://schemas.xmlsoap.org/
> >> ws/2003/06/secext"
> >>>> is not a standard WS-Security namespace, and hence CXF is not
> processing
> >>>> the message header at all. The correct WS-Security namespace for the
> >>>> security header is instead "
> >>>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
> >> wssecurity-secext-1.0.xsd
> >>>> ".
> >>>>
> >>>> You could take a look at the CXF transformation feature to transform
> the
> >>>> namespace into the correct version (no idea if this will work or not):
> >>>>
> >>>> http://cxf.apache.org/docs/transformationfeature.html
> >>>>
> >>>> Colm.
> >>>>
> >>>>
> >>>> On Tue, Jan 23, 2018 at 6:19 PM, Tóth Csaba <[email protected]> wrote:
> >>>>
> >>>>> Hello!
> >>>>> Its in the header:
> >>>>> ------------
> >>>>> <soapenv:Envelope
> >>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> >>>>> xmlns:ns="http://docs.oasis-open.org/ws-sx/ws-trust/200512";
> >>>>> xmlns:a="http://www.w3.org/2005/08/addressing";>
> >>>>>    <soapenv:Header>
> >>>>>   <wsse:Security xmlns:wsse="http://schemas.
> >> xmlsoap.org/ws/2003/06/secext"
> >>>>>     <saml:Assertion xmlns:saml="urn:oasis:names:
> tc:SAML:2.0:assertion"
> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema";
> >>>>> ID="pfxccb2f4f7-ca9c-3b5e-89b1-1d3c777400bc" Version="2.0"
> >>>>> IssueInstant="2014-07-17T01:01:48Z">
> >>>>>
> >>>>>   [assertion]
> >>>>>
> >>>>>   </saml:Assertion>
> >>>>>
> >>>>>   </wsse:Security>
> >>>>>   </soapenv:Header>
> >>>>>  <soapenv:Body>
> >>>>>       <ns:RequestSecurityToken >
> >>>>>
> >>>>> <ns:RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/
> 200512/Issue
> >>>>> </ns:RequestType>
> >>>>>
> >>>>> <ns:TokenType>http://docs.oasis-open.org/wss/oasis-wss-
> >>>>> saml-token-profile-1.1#SAMLV2.0</ns:TokenType>
> >>>>>   <ns7:AppliesTo xmlns:ns7="http://www.w3.org/ns/ws-policy";>  [url]
> >>>>> </ns7:AppliesTo>
> >>>>>   <!--
> >>>>>    <ns:Claims Dialect="http://bag.admin.ch/
> epr/2017/annex/5/addendum/2
> >> ">
> >>>>> [claims need to process too ]
> >>>>>
> >>>>>  </ns:Claims>
> >>>>> -->
> >>>>>  </ns:RequestSecurityToken>
> >>>>>  </soapenv:Body>
> >>>>> </soapenv:Envelope>
> >>>>> ---------------------
> >>>>>
> >>>>> Its look like easy task for the first look:
> >>>>> get a SAML in the header, full of attributes, and a request with
> other
> >>>>> attributes.
> >>>>> Validate some attributes, and all header attributes + claims
> attributes
> >>>>> put the new SAML token.
> >>>>>
> >>>>> but, about a week long, I google, read source code, google again, and
> >>>>> try to config the thing.
> >>>>> no good tutorial, no good documentation, no good description :(
> >>>>>
> >>>>> Csaba
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 2018.01.23. 18:08, Colm O hEigeartaigh wrote:
> >>>>>> What does the request look like, e.g. where is the SAML token in the
> >>>>>> request? Is it referred to directly in the SOAP Body?
> >>>>>>
> >>>>>> Colm.
> >>>>>>
> >>>>>> On Tue, Jan 23, 2018 at 4:37 PM, Tóth Csaba <[email protected]> wrote:
> >>>>>>
> >>>>>>> Hello!
> >>>>>>>
> >>>>>>> I'd like to parse the incomming SAML token to get the fields (user,
> >> etc)
> >>>>>>> and give it to the issuer.
> >>>>>>> I found, that is done in the
> >>>>>>> org.apache.cxf.sts.operation.TokenIssueOperation class but
> >>>>>>> stsProperties.getSamlRealmCodec() is always null in my code (how
> >> can i
> >>>>>>> set it, need to create a new one?)
> >>>>>>> but after in the fetchSAMLAssertionFromWSSecuritySAMLToken()
> >> function
> >>>>>>> List<WSSecurityEngineResult> engineResults =
> >> handlerResult.getResults();
> >>>>>>> line give back an empty list.
> >>>>>>>
> >>>>>>> In the request there is an SAML token.
> >>>>>>>
> >>>>>>> I try to find some solution, but every example is working with the
> >>>>>>> usernametoken, and/or dont provide a valid cxf config xml.
> >>>>>>>
> >>>>>>> Thanx
> >>>>>>> Csaba
> >>>>>>>
> >>>>>>>
> >>
> >
>
>


-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to