You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by wangjlc <wa...@163.com> on 2014/12/19 12:46:15 UTC

CXF3 Server-side token validation issues

*Ask an expert a question, please comment:*


*I'm using CXF3.0.1, WS-context.XML on the server side configuration is as
follows: *


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

	<import resource="classpath:META-INF/cxf/cxf.xml" />

	<jaxws:endpoint id="iproviderconnector" address="/iproviderconnector"
		implementor="com.dcfs.payment.mb.ws.adapter.iproviderconnectorSOAPImpl">
		<jaxws:inInterceptors>
			<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />
			<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
				<constructor-arg>
					<map>
						<entry key="action" value="UsernameToken" />
						<entry key="passwordType" value="PasswordText" />
						
						<entry key="passwordCallbackClass"
value="com.dcfs.payment.mb.ws.security.WsAuthHandler" />
					</map>
				</constructor-arg>
			</bean>
		</jaxws:inInterceptors>
	</jaxws:endpoint>	
</beans>

*Server-side callback class:*


import java.io.IOException; 
import javax.security.auth.callback.Callback; 
import javax.security.auth.callback.CallbackHandler; 
import javax.security.auth.callback.UnsupportedCallbackException; 
import org.apache.cxf.interceptor.Fault; 
import org.apache.wss4j.common.ext.WSPasswordCallback; 
import org.apache.xmlbeans.impl.soap.SOAPException; 
public class WsAuthHandler implements CallbackHandler { 
	public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException { 
		String ws_pwd = "test"; 
		String ws_user = "test";
		for (int i = 0; i < callbacks.length; i++) { 
			WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
			String identifier = pc.getIdentifier();
			String pwd = pc.getPassword();
			int usage = pc.getUsage();
			if(ws_user.equals(identifier)){ 
				if (usage == WSPasswordCallback.USERNAME_TOKEN) { 
					pc.setPassword(ws_pwd);
				} else if (usage == WSPasswordCallback.SIGNATURE) {
pc.setPassword(ws_pwd);
			} 
		} 
	    } 
	} 
    }

*Server-side service class as follows *


	 public class TestServer { 
		 TestServer(String args){ 
			Iproviderconnector ews = new iproviderconnectorSOAPImpl();
			JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
			factory.setServiceClass(Iproviderconnector.class);
			factory.setAddress("http://localhost:9000/Iproviderconnector");
			factory.setServiceBean(ews);
			factory.create();
		 } 
		
		public static void main(String[] args)throws InterruptedException{ 
			new TestServer("Iproviderconnector");
			System.out.println("Server ready...");
			Thread.sleep(1000*60);
			System.out.println("Server exit...");
			System.exit(0);
		} 
	}

*
Use the weblogic11g, client access, and WebLogic error, as follows: *


2014-12-18 16:09:26 org.apache.cxf.phase.PhaseInterceptorChain
doDefaultLogging WARNING: Interceptor for
{http://adapter.ws.mb.payment.dcfs.com/}IproviderconnectorService#{http://adapter.ws.mb.payment.dcfs.com/}doCommon
has thrown exception, unwinding now Throwable occurred: 
org.apache.cxf.binding.soap.SoapFault: MustUnderstand headers:
[{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security]
are not understood. 
at
org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$MustUnderstandEndingInterceptor.handleMessage(MustUnderstandInterceptor.java:281) 
at
org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$MustUnderstandEndingInterceptor.handleMessage(MustUnderstandInterceptor.java:259) 
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) 
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243) 
at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:261) 
at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70) 
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088) 
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024) 
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) 
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
at org.eclipse.jetty.server.Server.handle(Server.java:370) 
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) 
at
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982) 
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:957) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) 
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) 
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) 
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
at java.lang.Thread.run(Thread.java:738) 

*Please help 

Best wishes
*




--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by wangjlc <wa...@163.com>.
Oh, increasing this attribute

*props.put("utTimeToLive", "300000");
*

Would have been OK.

Summary this question, I think it was Spring and weblogic11g compatibility
problems, because when I use the Spring bean is loaded, set the interceptor
is always error. Specific reasons if you have time, I'll study.


Thank you very much *coheigea*



have a good day



--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5753337.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by Colm O hEigeartaigh <co...@apache.org>.
The problem here is that you are sending a "stale" UsernameToken to the
endpoint. WSS4J has a default "time to live" setting, where it will reject
UsernameTokens that contain a "Created" timestamp after this "time to live"
has expired. The default value is 5 minutes. You can set a larger value by
specifying the property "utTimeToLive":

http://ws.apache.org/wss4j/config.html

Colm.

On Thu, Jan 15, 2015 at 1:51 AM, wangjlc <wa...@163.com> wrote:

> *I found my configuration does not work in WS-context.XML, I will remove
> the
> spring configuration Web.XML, which does not use a spring loaded,*
>
>
>         <listener>
>
>
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
>         </listener>
>
>   <context-param>
>     <param-name>contextConfigLocation</param-name>
>     <param-value>WEB-INF/ws-context.xml,WEB-INF/beans.xml</param-value>
>   </context-param>
>
>
>  *but only to add the following code in the code, before the error was
> gone,
> but sends a request using soapUI, server-side the following exception:*
>
>
>
>                 Server server = factory.create();
>                 Endpoint cxfEndpoint = server.getEndpoint();
>
>
>                 Map<String, Object> props = new HashMap<String, Object>();
>                 props.put("action", "UsernameToken");
>                 props.put("passwordType", "PasswordText");
>                 props.put("passwordCallbackClass",
> WsAuthHandler.class.getName());
>                 WSS4JInInterceptor wss4JInInterceptor = new
> WSS4JInInterceptor(props);
>                 //factory.getInInterceptors().add(wss4JInInterceptor);
>
>                 cxfEndpoint.getInInterceptors().add(wss4JInInterceptor);
>
>
>
>
> 2015-1-14 16:04:00 org.apache.cxf.phase.PhaseInterceptorChain
> doDefaultLogging
> WARNING: Interceptor for
> {
> http://adapter.ws.mb.payment.dcfs.com/}IproviderconnectorService#{http://adapter.ws.mb.payment.dcfs.com/}doCommon
> has thrown exception, unwinding now
> Throwable occurred: org.apache.cxf.binding.soap.SoapFault: The message has
> expired
>         at
>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.createSoapFault(WSS4JInInterceptor.java:809)
>         at
>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:313)
>         at
>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:93)
>         at
>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
>         at
>
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>         at
>
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243)
>         at
>
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:261)
>         at
>
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
>         at
>
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
>         at
>
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
>         at
>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>         at
>
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
>         at
>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>         at org.eclipse.jetty.server.Server.handle(Server.java:370)
>         at
>
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
>         at
>
> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
>         at
>
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
>         at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
>         at
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
>         at
>
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
>         at
>
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
>         at
>
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
>         at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>         at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>         at java.lang.Thread.run(Thread.java:738)
> Caused by: org.apache.wss4j.common.ext.WSSecurityException: The message has
> expired
>         at
>
> org.apache.wss4j.dom.processor.UsernameTokenProcessor.handleUsernameToken(UsernameTokenProcessor.java:172)
>         at
>
> org.apache.wss4j.dom.processor.UsernameTokenProcessor.handleToken(UsernameTokenProcessor.java:69)
>         at
>
> org.apache.wss4j.dom.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:427)
>         at
>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:257)
>         ... 23 more
>
>
>
>
>
>
> *Are there any experts have been faced with such a problem, please advise,
> thank you!*
>
>
>
>
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5753050.html
> Sent from the cxf-dev mailing list archive at Nabble.com.
>



-- 
Colm O hEigeartaigh

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

Re: CXF3 Server-side token validation issues

Posted by wangjlc <wa...@163.com>.
*I found my configuration does not work in WS-context.XML, I will remove the
spring configuration Web.XML, which does not use a spring loaded,*


	<listener>
	    
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/ws-context.xml,WEB-INF/beans.xml</param-value>
  </context-param>


 *but only to add the following code in the code, before the error was gone,
but sends a request using soapUI, server-side the following exception:*



	        Server server = factory.create();
	        Endpoint cxfEndpoint = server.getEndpoint();				
			
	        
	        Map<String, Object> props = new HashMap<String, Object>();  
	        props.put("action", "UsernameToken");  
	        props.put("passwordType", "PasswordText");  
	        props.put("passwordCallbackClass", WsAuthHandler.class.getName());  
	        WSS4JInInterceptor wss4JInInterceptor = new
WSS4JInInterceptor(props);  
	        //factory.getInInterceptors().add(wss4JInInterceptor);
	        
	        cxfEndpoint.getInInterceptors().add(wss4JInInterceptor);




2015-1-14 16:04:00 org.apache.cxf.phase.PhaseInterceptorChain
doDefaultLogging
WARNING: Interceptor for
{http://adapter.ws.mb.payment.dcfs.com/}IproviderconnectorService#{http://adapter.ws.mb.payment.dcfs.com/}doCommon
has thrown exception, unwinding now
Throwable occurred: org.apache.cxf.binding.soap.SoapFault: The message has
expired
	at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.createSoapFault(WSS4JInInterceptor.java:809)
	at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:313)
	at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:93)
	at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
	at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
	at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243)
	at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:261)
	at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
	at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
	at
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
	at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
	at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
	at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:738)
Caused by: org.apache.wss4j.common.ext.WSSecurityException: The message has
expired
	at
org.apache.wss4j.dom.processor.UsernameTokenProcessor.handleUsernameToken(UsernameTokenProcessor.java:172)
	at
org.apache.wss4j.dom.processor.UsernameTokenProcessor.handleToken(UsernameTokenProcessor.java:69)
	at
org.apache.wss4j.dom.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:427)
	at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:257)
	... 23 more






*Are there any experts have been faced with such a problem, please advise,
thank you!*




--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5753050.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by wangjlc <wa...@163.com>.
*Does anybody come across this problem? please advice to help solve this
problem, thanks!!*






--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5752747.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by wangjlc <wa...@163.com>.
*hi DemonShi 
   Can you help with the analysis of this problem?*



*best wishes*





--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5752734.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by wangjlc <wa...@163.com>.
*Come to think of it, I added to the WebLogic startup script in the
setDomainEnv.sh JAVA_OPTIONS the following configuration*


-Dorg.apache.cxf.stax.allowInsecureParser=1

*But if you do not add this option, start WebLogic will report the following
error. Increased start WebLogic doesn't complain, JAVA_OPTIONS this has
anything to do with token authentication error above?*


2014-12-25 14:14:26 org.springframework.web.context.ContextLoader
initWebApplicationContext
SEVERE: Context initialization failed
Throwable occurred: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'iproviderconnector': Invocation of init
method failed; nested exception is javax.xml.ws.WebServiceException:
org.apache.cxf.service.factory.ServiceConstructionException: Failed to
create service.
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
	at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
	at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
	at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
	at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)
	at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
	at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
	at
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
	at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
	at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
	at
weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
	at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
	at
weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
	at
weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1872)
	at
weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3153)
	at
weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1508)
	at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:482)
	at
weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
	at
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
	at
weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
	at
weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
	at
weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)
	at
weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
	at
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
	at
weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
	at
weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
	at
weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:636)
	at
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
	at
weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:205)
	at
weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:43)
	at
weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
	at
weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
	at
weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
	at
weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
	at
weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
	at
weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
	at
weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
	at
weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
	at
weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
	at
weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
	at
weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:180)
	at
weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:96)
	at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: javax.xml.ws.WebServiceException:
org.apache.cxf.service.factory.ServiceConstructionException: Failed to
create service.
	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:371)
	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251)
	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:539)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:611)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1638)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1579)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
	... 48 more
Caused by: org.apache.cxf.service.factory.ServiceConstructionException:
Failed to create service.
	at
org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:87)
	at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:391)
	at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:525)
	at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:261)
	at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:215)
	at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
	at
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
	at
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
	at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:456)
	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:334)
	... 57 more
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR:
java.lang.RuntimeException: Cannot create a secure XMLInputFactory
	at
org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:221)
	at
org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:163)
	at
org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:85)
	... 66 more
Caused by: java.lang.RuntimeException: Cannot create a secure
XMLInputFactory
	at
org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:314)
	at
org.apache.cxf.staxutils.StaxUtils.getXMLInputFactory(StaxUtils.java:264)
	at
org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1516)
	at
org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1415)
	at
org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:208)
	... 68 more
<2014-12-25 pm02:14:26 CST> <Warning> <HTTP> <BEA-101162> <User defined
listener org.springframework.web.context.ContextLoaderListener failed:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'iproviderconnector': Invocation of init method failed; nested
exception is javax.xml.ws.WebServiceException:
org.apache.cxf.service.factory.ServiceConstructionException: Failed to
create service..
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'iproviderconnector': Invocation of init method failed; nested
exception is javax.xml.ws.WebServiceException:
org.apache.cxf.service.factory.ServiceConstructionException: Failed to
create service.
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
	at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
	at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
	Truncated. see log file for complete stacktrace
Caused By: javax.xml.ws.WebServiceException:
org.apache.cxf.service.factory.ServiceConstructionException: Failed to
create service.
	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:371)
	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251)
	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:539)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
	Truncated. see log file for complete stacktrace
Caused By: org.apache.cxf.service.factory.ServiceConstructionException:
Failed to create service.
	at
org.apache.cxf.wsdl11.WSDLServiceFactory.&lt;init>(WSDLServiceFactory.java:87)
	at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:391)
	at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:525)
	at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:261)
	at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:215)
	Truncated. see log file for complete stacktrace
Caused By: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR:
java.lang.RuntimeException: Cannot create a secure XMLInputFactory
	at
org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:221)
	at
org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:163)
	at
org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:85)
	at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:391)
	at
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:525)
	Truncated. see log file for complete stacktrace
Caused By: java.lang.RuntimeException: Cannot create a secure
XMLInputFactory
	at
org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:314)
	at
org.apache.cxf.staxutils.StaxUtils.getXMLInputFactory(StaxUtils.java:264)
	at
org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1516)
	at
org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1415)
	at
org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:208)
	Truncated. see log file for complete stacktrace
> 
<2014-12-25 pm02:14:26 CST> <Error> <Deployer> <BEA-149231> <Unable to set
the activation state to true for the application 'cbsd_ws'.
weblogic.application.ModuleException: 
	at
weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1510)
	at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:482)
	at
weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
	at
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
	at
weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
	Truncated. see log file for complete stacktrace
Caused By: java.lang.RuntimeException: Cannot create a secure
XMLInputFactory
	at
org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:314)
	at
org.apache.cxf.staxutils.StaxUtils.getXMLInputFactory(StaxUtils.java:264)
	at
org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1516)
	at
org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1415)
	at
org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:208)
	Truncated. see log file for complete stacktrace
>



--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5752731.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by wangjlc <wa...@163.com>.
*Please help to analyse, appreciate it.*



*best wishes*



--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5752708.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by wangjlc <wa...@163.com>.
*hi  coheigea *

   Can you help me to analyze the problem?



*best wishs*




--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5752633.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by wangjlc <wa...@163.com>.
*I removed the following 6 JAR packages under
the/weblogic/apps/cbsd_ws/WEB-INF/lib path
*


cxf-rt-ws-policy-3.0.1.jar                 
cxf-services-sts-core-3.0.1.jar            
cxf-services-ws-discovery-api-3.0.1.jar    
cxf-services-ws-discovery-service-3.0.1.jar
cxf-services-wsn-api-3.0.1.jar             
cxf-services-wsn-core-3.0.1.jar            

*, Start the service there is no error, but still throws the same error at
run time,
*


*Then I removed the After 
*


CXF-RT-WS-Security-3.0.1.jar, 

*when you start the application, it throws the following exception:
*

Exception in thread "Thread-21" java.lang.NoClassDefFoundError:
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
	at
com.dcfs.payment.mb.ws.adapter.WSAdapterThread.run(WSAdapterThread.java:106)
Caused by: java.lang.ClassNotFoundException:
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
	at
weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
	at
weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
	at
weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:660)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
	at
weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
	at
weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:43)
	... 1 more



--
View this message in context: http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544p5752606.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: CXF3 Server-side token validation issues

Posted by Colm O hEigeartaigh <co...@apache.org>.
Is the cxf-rt-ws-security jar on the classpath?

Colm.

On Fri, Dec 19, 2014 at 11:46 AM, wangjlc <wa...@163.com> wrote:
>
> *Ask an expert a question, please comment:*
>
>
> *I'm using CXF3.0.1, WS-context.XML on the server side configuration is as
> follows: *
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:jaxws="http://cxf.apache.org/jaxws"
>         xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>
>         <import resource="classpath:META-INF/cxf/cxf.xml" />
>
>         <jaxws:endpoint id="iproviderconnector"
> address="/iproviderconnector"
>
> implementor="com.dcfs.payment.mb.ws.adapter.iproviderconnectorSOAPImpl">
>                 <jaxws:inInterceptors>
>                         <bean
> class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />
>                         <bean
> class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
>                                 <constructor-arg>
>                                         <map>
>                                                 <entry key="action"
> value="UsernameToken" />
>                                                 <entry key="passwordType"
> value="PasswordText" />
>
>                                                 <entry
> key="passwordCallbackClass"
> value="com.dcfs.payment.mb.ws.security.WsAuthHandler" />
>                                         </map>
>                                 </constructor-arg>
>                         </bean>
>                 </jaxws:inInterceptors>
>         </jaxws:endpoint>
> </beans>
>
> *Server-side callback class:*
>
>
> import java.io.IOException;
> import javax.security.auth.callback.Callback;
> import javax.security.auth.callback.CallbackHandler;
> import javax.security.auth.callback.UnsupportedCallbackException;
> import org.apache.cxf.interceptor.Fault;
> import org.apache.wss4j.common.ext.WSPasswordCallback;
> import org.apache.xmlbeans.impl.soap.SOAPException;
> public class WsAuthHandler implements CallbackHandler {
>         public void handle(Callback[] callbacks) throws IOException,
> UnsupportedCallbackException {
>                 String ws_pwd = "test";
>                 String ws_user = "test";
>                 for (int i = 0; i < callbacks.length; i++) {
>                         WSPasswordCallback pc = (WSPasswordCallback)
> callbacks[i];
>                         String identifier = pc.getIdentifier();
>                         String pwd = pc.getPassword();
>                         int usage = pc.getUsage();
>                         if(ws_user.equals(identifier)){
>                                 if (usage ==
> WSPasswordCallback.USERNAME_TOKEN) {
>                                         pc.setPassword(ws_pwd);
>                                 } else if (usage ==
> WSPasswordCallback.SIGNATURE) {
> pc.setPassword(ws_pwd);
>                         }
>                 }
>             }
>         }
>     }
>
> *Server-side service class as follows *
>
>
>          public class TestServer {
>                  TestServer(String args){
>                         Iproviderconnector ews = new
> iproviderconnectorSOAPImpl();
>                         JaxWsServerFactoryBean factory = new
> JaxWsServerFactoryBean();
>                         factory.setServiceClass(Iproviderconnector.class);
>                         factory.setAddress("
> http://localhost:9000/Iproviderconnector");
>                         factory.setServiceBean(ews);
>                         factory.create();
>                  }
>
>                 public static void main(String[] args)throws
> InterruptedException{
>                         new TestServer("Iproviderconnector");
>                         System.out.println("Server ready...");
>                         Thread.sleep(1000*60);
>                         System.out.println("Server exit...");
>                         System.exit(0);
>                 }
>         }
>
> *
> Use the weblogic11g, client access, and WebLogic error, as follows: *
>
>
> 2014-12-18 16:09:26 org.apache.cxf.phase.PhaseInterceptorChain
> doDefaultLogging WARNING: Interceptor for
> {
> http://adapter.ws.mb.payment.dcfs.com/}IproviderconnectorService#{http://adapter.ws.mb.payment.dcfs.com/}doCommon
> has thrown exception, unwinding now Throwable occurred:
> org.apache.cxf.binding.soap.SoapFault: MustUnderstand headers:
> [{
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
> ]
> are not understood.
> at
>
> org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$MustUnderstandEndingInterceptor.handleMessage(MustUnderstandInterceptor.java:281)
> at
>
> org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$MustUnderstandEndingInterceptor.handleMessage(MustUnderstandInterceptor.java:259)
> at
>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
> at
>
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> at
>
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243)
> at
>
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:261)
> at
>
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> at
>
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
> at
>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handle(Server.java:370)
> at
>
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
> at
>
> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
> at
>
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:957)
> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
> at
>
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> at
>
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
> at
>
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
> at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> at java.lang.Thread.run(Thread.java:738)
>
> *Please help
>
> Best wishes
> *
>
>
>
>
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/CXF3-Server-side-token-validation-issues-tp5752544.html
> Sent from the cxf-dev mailing list archive at Nabble.com.
>


-- 
Colm O hEigeartaigh

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