It's great that it's working for you, but the STS endpoint should not have a "ws-security.saml2.validator" pointing to the STSTokenValidator. The STSTokenValidator is used by a service to send a received SAML token off to an STS for validation. In your case, the validation is done locally, so you shouldn't need to specify "ws-security.saml2.validator" at all.
Colm. On Sun, Jan 28, 2018 at 8:59 AM, Tóth Csaba <[email protected]> wrote: > Hello! > Its SOLVED! > > there were multiple errors: > - typo in the keystore filename, > - the Cryptoproperties must be in a property file, what need to put > under WEB-INF/classes/ > - the SignatureUsername is the alias in the keystore > - must be a password callback handler for the password to the private > key (and its hard to config thru the config files) > > thanx > Csaba > > On 2018.01.26. 18:49, Tóth Csaba wrote: > > Hello! > > I'm now very confused: > > > > I have this config file: > > > > <?xml version="1.0" encoding="UTF-8"?> > > <beans xmlns="http://www.springframework.org/schema/beans" > > xmlns:cxf="http://cxf.apache.org/core" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xmlns:sec="http://cxf.apache.org/configuration/security" > > xmlns:http="http://cxf.apache.org/transports/http/configuration" > > xmlns:httpj="http://cxf.apache.org/transports/http- > jetty/configuration" > > xmlns:jaxws="http://cxf.apache.org/jaxws" > > xmlns:util="http://www.springframework.org/schema/util" > > xmlns:soap="http://cxf.apache.org/bindings/soap" > > xsi:schemaLocation="http://cxf.apache.org/core > > http://cxf.apache.org/schemas/core.xsd > > http://cxf.apache.org/configuration/security > > http://cxf.apache.org/schemas/configuration/security.xsd > > http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd > > http://cxf.apache.org/transports/http/configuration > > http://cxf.apache.org/schemas/configuration/http-conf.xsd > > http://cxf.apache.org/transports/http-jetty/configuration > > http://cxf.apache.org/schemas/configuration/http-jetty.xsd > > http://www.springframework.org/schema/beans > > http://www.springframework.org/schema/beans/spring-beans-4.2.xsd > > http://www.springframework.org/schema/util > > http://www.springframework.org/schema/util/spring-util-4.2.xsd > > http://cxf.apache.org/bindings/soap > > http://cxf.apache.org/schemas/configuration/soap.xsd"> > > > > <bean id="defaultTokenStore" > > class="org.apache.cxf.sts.cache.DefaultInMemoryTokenStore"> > > </bean> > > <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"/> > > <property name="issuer" value="issuer"/> > > <property name="signatureUsername" value="signature"/> > > </bean> > > > > <bean id="utService" class="org.apache.cxf.sts. > service.StaticService"> > > <property name="endpoints" value="http://localhost: xxxx > > /services/SecurityTokenServiceProvider" /> > > </bean> > > > > <bean id="utSCTSamlTokenProvider" > > class="org.apache.cxf.sts.token.provider.SAMLTokenProvider"> > > </bean> > > > > <util:list id="utTokenProviders"> > > <ref bean="utSCTSamlTokenProvider"/> > > </util:list> > > > > <bean id="utIssueDelegate" class=" package .TokenIssueOperation"> > > <property name="tokenProviders" ref="utTokenProviders"/> > > <property name="services" ref="utService" /> > > <property name="stsProperties" ref="utSTSProperties" /> > > <property name="tokenStore" ref="defaultTokenStore"/> > > </bean> > > > > <bean id="utSTSProviderBean" class=" package > > .SecurityTokenServiceProvider"> > > <property name="issueOperation" ref="utIssueDelegate" /> > > </bean> > > <!-- > > <bean id="utSTSProviderBean" > > class="org.apache.cxf.ws.security.sts.provider. > SecurityTokenServiceProvider"> > > <property name="issueOperation" ref="utIssueDelegate" /> > > </bean> > > --> > > > > <jaxws:endpoint > > xmlns:tns="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" > > id="securitytokenserviceprovider" implementor="# > utSTSProviderBean" > > wsdlLocation="WEB-INF/wsdl/ws-trust-1.4-service.wsdl" > > endpointName="tns:UT_Port" > > serviceName="tns:SecurityTokenService" > > address="/SecurityTokenServiceProvider"> > > <jaxws:properties> > > > > <entry key="security.return.security.error" value="true" /> > > <entry key="security.validate.audience-restriction" > > value="false" /> > > <entry key="security.signature.properties"> > > <bean id="signatureCryptoProperties" > > 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> > > </entry> > > <entry key="ws-security.saml2.validator"> > > <bean > > class="org.apache.cxf.ws.security.trust.STSTokenValidator"/> > > </entry> > > </jaxws:properties> > > <jaxws:binding> > > <soap:soapBinding mtomEnabled="true" version="1.2" /> > > </jaxws:binding> > > </jaxws:endpoint> > > </beans> > > > > the keystore is under WEB-INF, it cointains the cert from the incomming > > Cert. > > > > all help thanks. > > > > Csaba > > > > On 2018.01.26. 15:40, Colm O hEigeartaigh wrote: > >> OK so it appears the problems with the STS issuing the token have been > >> fixed? The errors are from the STSSamlAssertionValidator, which is > supposed > >> to be used on the service side. It tries to validate the Signature > locally > >> on the token, and if it fails it dispatches the token to the STS for > >> validation, which is why you're seeing an error about STSClient. > >> > >> What behaviour are you expecting on the service side? Normally the > >> STSSamlAssertionValidator > >> is not configured, because you have the CA cert of the STS in the > service > >> keystore and it can validate the certificate locally. Is the STS cert > (or > >> CA cert) in your crypto properties file pointing to by the > >> security.signature.properties configuration variable on the service > side? > >> > >> Colm. > >> > >> On Fri, Jan 26, 2018 at 11:56 AM, Tóth Csaba <[email protected]> wrote: > >> > >>> Hello! > >>> (Sorry for the wrong address) > >>> > >>> It's go forward with little steps. > >>> now I get this error: > >>> jan. 26, 2018 12:42:21 DU > >>> org.apache.cxf.ws.security.trust.STSSamlAssertionValidator > >>> verifySignedAssertion > >>> WARNING: Local trust verification of SAML assertion failed: Error > during > >>> certificate path validation: No trusted certs found > >>> org.apache.wss4j.common.ext.WSSecurityException: Error during > >>> certificate path validation: No trusted certs found > >>> at org.apache.wss4j.common.crypto.Merlin.verifyTrust( > Merlin.java:829) > >>> at org.apache.wss4j.common.crypto.Merlin.verifyTrust( > Merlin.java:919) > >>> at > >>> org.apache.wss4j.dom.validate.SignatureTrustValidator. > verifyTrustInCerts( > >>> SignatureTrustValidator.java:109) > >>> at > >>> org.apache.wss4j.dom.validate.SignatureTrustValidator.validate( > >>> SignatureTrustValidator.java:64) > >>> at > >>> org.apache.wss4j.dom.validate.SamlAssertionValidator. > >>> verifySignedAssertion(SamlAssertionValidator.java:214) > >>> at > >>> org.apache.cxf.ws.security.trust.STSSamlAssertionValidator. > >>> verifySignedAssertion(STSSamlAssertionValidator.java:68) > >>> > >>> I get the certification from the SAML, and put into the keystore what i > >>> already setup (and put under the WEB-INF/classes/key directory > >>> > >>> the strange thing, the next error come about: > >>> jan. 26, 2018 12:42:24 DU org.apache.cxf.phase.PhaseInterceptorChain > >>> doDefaultLogging > >>> WARNING: Interceptor for > >>> {http://docs.oasis-open.org/ws-sx/ws-trust/200512/} > SecurityTokenService > >>> has thrown exception, unwinding now > >>> org.apache.cxf.ws.security.trust.TrustException: The STSClient is not > >>> configured with either a location or wsdlLocation property > >>> at > >>> org.apache.cxf.ws.security.trust.AbstractSTSClient.createClient( > >>> AbstractSTSClient.java:673) > >>> at > >>> org.apache.cxf.ws.security.trust.AbstractSTSClient. > >>> validate(AbstractSTSClient.java:1101) > >>> at > >>> org.apache.cxf.ws.security.trust.STSClient.validateSecurityToken( > >>> STSClient.java:105) > >>> > >>> What STSClient? why want to create a client? > >>> in the cxf settings no "client" string is found > >>> > >>> Thanx > >>> Csaba > >>> > >>> On 2018.01.25. 15:48, Colm O hEigeartaigh wrote: > >>>> Please reply to the CXF mailing list and not me directly...the problem > >>>> is that the SAML Assertion is getting validated before it hits the > >>>> STS, so you need to make a reference to the signature properties as a > >>>> JAX-WS property of the endpoint. For example: > >>>> > >>>> https://github.com/apache/cxf/blob/6a3f97e9f0d02eef72bf10c266d444 > >>> ec3af78bf5/services/sts/systests/basic/src/test/ > resources/org/apache/cxf/ > >>> systest/sts/transport/cxf-service.xml#L44 > >>>> On Thu, Jan 25, 2018 at 2:38 PM, Tóth Csaba <[email protected] > >>>> <mailto:[email protected]>> wrote: > >>>> > >>>> Hello! > >>>> this is the full trace: > >>>> > >>>> jan. 25, 2018 2:17:13 DU org.apache.cxf.phase. > PhaseInterceptorChain > >>>> doDefaultLogging > >>>> WARNING: Interceptor for > >>>> {http://docs.oasis-open.org/ws-sx/ws-trust/200512/} > >>> SecurityTokenService > >>>> <http://docs.oasis-open.org/ws-sx/ws-trust/200512/% > >>> 7DSecurityTokenService> > >>>> has thrown exception, unwinding now > >>>> org.apache.cxf.binding.soap.SoapFault: No crypto property file > >>>> supplied > >>>> for signature > >>>> at > >>>> org.apache.cxf.ws.security.wss4j.WSS4JUtils. > >>> createSoapFault(WSS4JUtils.java:236) > >>>> at > >>>> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor. > >>> handleMessageInternal(WSS4JInInterceptor.java:340) > >>>> at > >>>> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor. > handleMessage( > >>> WSS4JInInterceptor.java:175) > >>>> at > >>>> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor. > >>> handleMessage(PolicyBasedWSS4JInInterceptor.java:79) > >>>> at > >>>> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor. > >>> handleMessage(PolicyBasedWSS4JInInterceptor.java:66) > >>>> at > >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept( > >>> PhaseInterceptorChain.java:308) > >>>> at > >>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage( > >>> ChainInitiationObserver.java:121) > >>>> at > >>>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke( > >>> AbstractHTTPDestination.java:267) > >>>> at > >>>> org.apache.cxf.transport.servlet.ServletController. > >>> invokeDestination(ServletController.java:234) > >>>> at > >>>> org.apache.cxf.transport.servlet.ServletController. > >>> invoke(ServletController.java:208) > >>>> at > >>>> org.apache.cxf.transport.servlet.ServletController. > >>> invoke(ServletController.java:160) > >>>> at > >>>> org.apache.cxf.transport.servlet.CXFNonSpringServlet. > >>> invoke(CXFNonSpringServlet.java:191) > >>>> at > >>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet. > handleRequest( > >>> AbstractHTTPServlet.java:301) > >>>> at > >>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet. > >>> doPost(AbstractHTTPServlet.java:220) > >>>> at javax.servlet.http.HttpServlet.service( > HttpServlet.java:661) > >>>> at > >>>> org.apache.cxf.transport.servlet.AbstractHTTPServlet. > >>> service(AbstractHTTPServlet.java:276) > >>>> at > >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > >>> ApplicationFilterChain.java:231) > >>>> at > >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter( > >>> ApplicationFilterChain.java:166) > >>>> at > >>>> org.apache.tomcat.websocket.server.WsFilter.doFilter( > >>> WsFilter.java:52) > >>>> at > >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > >>> ApplicationFilterChain.java:193) > >>>> at > >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter( > >>> ApplicationFilterChain.java:166) > >>>> at > >>>> org.apache.catalina.core.StandardWrapperValve.invoke( > >>> StandardWrapperValve.java:198) > >>>> at > >>>> org.apache.catalina.core.StandardContextValve.invoke( > >>> StandardContextValve.java:96) > >>>> at > >>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke( > >>> AuthenticatorBase.java:504) > >>>> at > >>>> org.apache.catalina.core.StandardHostValve.invoke( > >>> StandardHostValve.java:140) > >>>> at > >>>> org.apache.catalina.valves.ErrorReportValve.invoke( > >>> ErrorReportValve.java:81) > >>>> at > >>>> org.apache.catalina.valves.AbstractAccessLogValve.invoke( > >>> AbstractAccessLogValve.java:650) > >>>> at > >>>> org.apache.catalina.core.StandardEngineValve.invoke( > >>> StandardEngineValve.java:87) > >>>> at > >>>> org.apache.catalina.connector.CoyoteAdapter.service( > >>> CoyoteAdapter.java:342) > >>>> at > >>>> org.apache.coyote.http11.Http11Processor.service( > >>> Http11Processor.java:803) > >>>> at > >>>> org.apache.coyote.AbstractProcessorLight.process( > >>> AbstractProcessorLight.java:66) > >>>> at > >>>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process( > >>> AbstractProtocol.java:790) > >>>> at > >>>> org.apache.tomcat.util.net > >>>> <http://org.apache.tomcat.util.net>.NioEndpoint$ > >>> SocketProcessor.doRun(NioEndpoint.java:1459) > >>>> at > >>>> org.apache.tomcat.util.net > >>>> <http://org.apache.tomcat.util.net>.SocketProcessorBase. > >>> run(SocketProcessorBase.java:49) > >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown > >>>> Source) > >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > >>>> Source) > >>>> at > >>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( > >>> TaskThread.java:61) > >>>> at java.lang.Thread.run(Unknown Source) > >>>> > >>>> Csaba > >>>> > >>>> On 2018.01.25. 15 <tel:2018.01.25.%2015>:32, Colm O hEigeartaigh > >>>> wrote: > >>>> > What's the full stack-trace? > >>>> > > >>>> > On Thu, Jan 25, 2018 at 1:44 PM, Tóth Csaba <[email protected] > >>>> <mailto:[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 <tel:2018.01.25.%2013>: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] > >>>> <mailto:[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 <tel:2018.01.24.%2019>: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- > >>>> <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 > >>>> <http://cxf.apache.org/docs/transformationfeature.html> > >>>> >>>>>> > >>>> >>>>>> Colm. > >>>> >>>>>> > >>>> >>>>>> > >>>> >>>>>> On Tue, Jan 23, 2018 at 6:19 PM, Tóth Csaba < > [email protected] > >>>> <mailto:[email protected]>> wrote: > >>>> >>>>>> > >>>> >>>>>>> Hello! > >>>> >>>>>>> Its in the header: > >>>> >>>>>>> ------------ > >>>> >>>>>>> <soapenv:Envelope > >>>> >>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ > >>>> <http://schemas.xmlsoap.org/soap/envelope/>" > >>>> >>>>>>> xmlns:ns="http://docs.oasis- > open.org/ws-sx/ws-trust/200512 > >>>> <http://docs.oasis-open.org/ws-sx/ws-trust/200512>" > >>>> >>>>>>> xmlns:a="http://www.w3.org/2005/08/addressing > >>>> <http://www.w3.org/2005/08/addressing>"> > >>>> >>>>>>> <soapenv:Header> > >>>> >>>>>>> <wsse:Security xmlns:wsse="http://schemas. > >>>> >>>> xmlsoap.org/ws/2003/06/secext > >>>> <http://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 > >>>> <http://www.w3.org/2001/XMLSchema-instance>" > >>>> >>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema > >>>> <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/ > >>>> <http://docs.oasis-open.org/ws-sx/ws-trust/> > >>>> >> 200512/Issue > >>>> >>>>>>> </ns:RequestType> > >>>> >>>>>>> > >>>> >>>>>>> <ns:TokenType>http://docs.oasis-open.org/wss/oasis-wss- > >>>> <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 > >>>> <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 <tel:2018.01.23.%2018>: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] <mailto:[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 fetchSAMLAssertionFromWSSecuri > >>> tySAMLToken() > >>>> >>>> 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 > >>> > > > > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com
