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