You're missing a quotation mark in your jaas configuration in the userProvider value.
Colm. On Tue, Jun 26, 2012 at 2:12 PM, Gina Choi <[email protected]> wrote: > Hi Colum, > > Thanks for your response. > <<<< > It doesn't look like you followed the steps correctly, as the WSS4J > UsernameTokenValidator is throwing the exception. You need to replace this > (default) Validator with the JAAS one, as per the configuration give in > http://cxf.apache.org/fediz-idp.html: > >>>> > Actually I have jaasUTValidator in my configuration file as follow. > However, I got hint from your "need to replace" words and commented > out original jaxws:endpoint(id="transportSTS1). > > <!--jaxws:endpoint id="transportSTS1" > implementor="#transportSTSProviderBean" > address="/STSService" > wsdlLocation="/WEB-INF/wsdl/ws-trust-1.4-service.wsdl" > xmlns:ns1="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" > serviceName="ns1:SecurityTokenService" > endpointName="ns1:TransportUT_Port"> > <jaxws:properties> > <entry key="ws-security.callback-handler" value-ref="upCallBackHandler" > /> > </jaxws:properties> > </jaxws:endpoint--> > > <jaxws:endpoint id="transportSTSUT" > endpointName="ns1:TransportUT_Port" > serviceName="ns1:SecurityTokenService" > xmlns:ns1="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" > wsdlLocation="/WEB-INF/wsdl/ws-trust-1.4-service.wsdl" > address="/STSService" > implementor="#transportSTSProviderBean"> > <jaxws:properties> > <entry key="ws-security.ut.validator" > value-ref="jaasUTValidator"/> > </jaxws:properties> > </jaxws:endpoint> > Now, at least it try to use JAASUsernameTokenValidator. > > ID: 1 > Address: https://localhost:9443/fedizidpsts/STSService?wsdl > Http-Method: GET > Content-Type: text/xml > Headers: {Accept=[*/*], cache-control=[no-cache], connection=[keep-alive], > content-type=[text/xml], host=[localhost:9443], pragma=[no-cache], user-age > nt=[Apache CXF 2.6.2-SNAPSHOT]} > -------------------------------------- > Jun 26, 2012 8:44:30 AM > org.apache.cxf.services.SecurityTokenService.TransportUT_Port.STS > INFO: Inbound Message > ---------------------------- > ID: 2 > Address: > https://localhost:9443/fedizidpsts/STSService?wsdl=ws-trust-1.4.wsdl > Http-Method: GET > Content-Type: text/xml > Headers: {Accept=[*/*], cache-control=[no-cache], connection=[keep-alive], > content-type=[text/xml], host=[localhost:9443], pragma=[no-cache], user-age > nt=[Apache CXF 2.6.2-SNAPSHOT]} > -------------------------------------- > Jun 26, 2012 8:44:30 AM > org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl > handleNoRegisteredBuilder > WARNING: No assertion builder for type { > http://www.w3.org/2006/05/addressing/wsdl}UsingAddressing registered. > Jun 26, 2012 8:44:30 AM > org.apache.cxf.services.SecurityTokenService.TransportUT_Port.STS > INFO: Outbound Message > --------------------------- > ID: 1 > Address: https://localhost:9443/fedizidpsts/STSService > Encoding: UTF-8 > Content-Type: text/xml > Headers: {Accept=[*/*], SOAPAction=[" > http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue"]} > Payload: <soap:Envelope xmlns:soap=" > http://schemas.xmlsoap.org/soap/envelope/ > "><soap:Header><wsse:Securityxmlns: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 > " > soa > p:mustUnderstand="1"><wsse:UsernameToken > wsu:Id="UsernameToken-1"><wsse:Username>gchoi</wsse:Username><wsse:Password > Type="http://docs.oasis-open.org/ > > wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">gchoi</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Bo > dy><wst:RequestSecurityToken xmlns:wst=" > http://docs.oasis-open.org/ws-sx/ws-trust/200512"><wst:RequestType> > http://docs.oasis-open.org/ws-sx/ws-trust/2 > 00512/Issue</wst:RequestType><wsp:AppliesTo xmlns:wsp=" > http://schemas.xmlsoap.org/ws/2004/09/policy > "><wsa:EndpointReferencexmlns:wsa=" > http://www.w3.o > rg/2005/08/addressing"><wsa:Address> > https://wkengchoi.global.sdl.corp:8443/fedizhelloworld/ > </wsa:Address></wsa:EndpointReference></wsp:AppliesTo><wst: > TokenType> > http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0 > </wst:TokenType><wst:KeyType>http://docs.oasis-open.org/ws-sx/ws-tru > st/200512/Bearer > </wst:KeyType></wst:RequestSecurityToken></soap:Body></soap:Envelope> > -------------------------------------- > Jun 26, 2012 8:44:30 AM > org.apache.cxf.services.SecurityTokenService.TransportUT_Port.STS > INFO: Inbound Message > ---------------------------- > ID: 3 > Address: https://localhost:9443/fedizidpsts/STSService > Encoding: UTF-8 > Http-Method: POST > Content-Type: text/xml; charset=UTF-8 > Headers: {Accept=[*/*], cache-control=[no-cache], connection=[keep-alive], > Content-Length=[1276], content-type=[text/xml; charset=UTF-8], host=[localh > ost:9443], pragma=[no-cache], SOAPAction=[" > http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue"], > user-agent=[Apache CXF 2.6.2-SNAPSHOT]} > Payload: <soap:Envelope xmlns:soap=" > http://schemas.xmlsoap.org/soap/envelope/ > "><soap:Header><wsse:Securityxmlns: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 > " > soa > p:mustUnderstand="1"><wsse:UsernameToken > wsu:Id="UsernameToken-1"><wsse:Username>gchoi</wsse:Username><wsse:Password > Type="http://docs.oasis-open.org/ > > wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">gchoi</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Bo > dy><wst:RequestSecurityToken xmlns:wst=" > http://docs.oasis-open.org/ws-sx/ws-trust/200512"><wst:RequestType> > http://docs.oasis-open.org/ws-sx/ws-trust/2 > 00512/Issue</wst:RequestType><wsp:AppliesTo xmlns:wsp=" > http://schemas.xmlsoap.org/ws/2004/09/policy > "><wsa:EndpointReferencexmlns:wsa=" > http://www.w3.o > rg/2005/08/addressing"><wsa:Address> > https://wkengchoi.global.sdl.corp:8443/fedizhelloworld/ > </wsa:Address></wsa:EndpointReference></wsp:AppliesTo><wst: > TokenType> > http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0 > </wst:TokenType><wst:KeyType>http://docs.oasis-open.org/ws-sx/ws-tru > st/200512/Bearer > </wst:KeyType></wst:RequestSecurityToken></soap:Body></soap:Envelope> > -------------------------------------- > SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". > SLF4J: Defaulting to no-operation (NOP) logger implementation > SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further > details. > Jun 26, 2012 8:44:31 AM 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/}Is > sue has thrown exception, unwinding now > java.lang.SecurityException: Configuration Error: > Line 2: expected [option key], found [null] > at com.sun.security.auth.login.ConfigFile.<init>(ConfigFile.java:93) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at java.lang.Class.newInstance0(Class.java:355) > at java.lang.Class.newInstance(Class.java:308) > at > javax.security.auth.login.Configuration$3.run(Configuration.java:247) > at java.security.AccessController.doPrivileged(Native Method) > at > > javax.security.auth.login.Configuration.getConfiguration(Configuration.java:242) > at > javax.security.auth.login.LoginContext$1.run(LoginContext.java:237) > at java.security.AccessController.doPrivileged(Native Method) > at > javax.security.auth.login.LoginContext.init(LoginContext.java:234) > at > javax.security.auth.login.LoginContext.<init>(LoginContext.java:403) > at > > org.apache.ws.security.validate.JAASUsernameTokenValidator.validate(JAASUsernameTokenValidator.java:103) > at > > org.apache.ws.security.processor.UsernameTokenProcessor.handleUsernameToken(UsernameTokenProcessor.java:152) > at > > org.apache.ws.security.processor.UsernameTokenProcessor.handleToken(UsernameTokenProcessor.java:66) > 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.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122) > at > > org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211) > at > > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) > at > > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193) > at > > org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129) > at > > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187) > at > > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:110) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) > at > > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > at > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) > at > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > Caused by: java.io.IOException: Configuration Error: > Line 2: expected [option key], found [null] > at com.sun.security.auth.login.ConfigFile.match(ConfigFile.java:543) > at > com.sun.security.auth.login.ConfigFile.parseLoginEntry(ConfigFile.java:406) > at > com.sun.security.auth.login.ConfigFile.readConfig(ConfigFile.java:350) > at com.sun.security.auth.login.ConfigFile.init(ConfigFile.java:262) > at com.sun.security.auth.login.ConfigFile.init(ConfigFile.java:202) > at com.sun.security.auth.login.ConfigFile.<init>(ConfigFile.java:91) > ... 45 more > Jun 26, 2012 8:44:31 AM > org.apache.cxf.services.SecurityTokenService.TransportUT_Port.STS > INFO: Outbound Message > --------------------------- > ID: 3 > Response-Code: 500 > Encoding: UTF-8 > Content-Type: text/xml > Headers: {} > Payload: <soap:Envelope xmlns:soap=" > http://schemas.xmlsoap.org/soap/envelope/ > "><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>C > onfiguration Error: > Line 2: expected [option key], found > [null]</faultstring></soap:Fault></soap:Body></soap:Envelope> > -------------------------------------- > Jun 26, 2012 8:44:31 AM > org.apache.cxf.services.SecurityTokenService.TransportUT_Port.STS > INFO: Inbound Message > ---------------------------- > ID: 1 > Response-Code: 500 > Encoding: UTF-8 > Content-Type: text/xml;charset=UTF-8 > Headers: {connection=[close], content-type=[text/xml;charset=UTF-8], > Date=[Tue, 26 Jun 2012 12:44:31 GMT], Server=[Apache-Coyote/1.1], > transfer-encodi > ng=[chunked]} > Payload: <soap:Envelope xmlns:soap=" > http://schemas.xmlsoap.org/soap/envelope/ > "><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>C > onfiguration Error: > Line 2: expected [option key], found > [null]</faultstring></soap:Fault></soap:Body></soap:Envelope> > -------------------------------------- > Jun 26, 2012 8:44:31 AM org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor > handleMessage > WARNING: Request does not contain Security header, but it's a fault. > Jun 26, 2012 8:44:31 AM org.apache.cxf.fediz.service.idp.IdpServlet doGet > INFO: Requesting security token failed > org.apache.cxf.binding.soap.SoapFault: Configuration Error: > Line 2: expected [option key], found [null] > at > > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75) > at > > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46) > at > > org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35) > at > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) > at > > org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113) > at > > org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69) > at > > org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34) > 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:1673) > at > > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1526) > at > > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1434) > 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.fediz.service.idp.IdpSTSClient.requestSecurityTokenResponse(IdpSTSClient.java:176) > at > > org.apache.cxf.fediz.service.idp.IdpSTSClient.requestSecurityTokenResponse(IdpSTSClient.java:64) > at > > org.apache.cxf.fediz.service.idp.IdpServlet.requestSecurityToken(IdpServlet.java:259) > at > org.apache.cxf.fediz.service.idp.IdpServlet.doGet(IdpServlet.java:160) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > at > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) > at > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com
