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
>>>>>
>>>>>
>

Reply via email to