[prev in list] [next in list] [prev in thread] [next in thread] 

List:       woden-dev
Subject:    [jira] [Resolved] (WSS-230) WSS4JInInterceptor.getAction throws "No security action was defined" whe
From:       "Colm O hEigeartaigh (JIRA)" <jira () apache ! org>
Date:       2013-09-17 12:49:52
Message-ID: JIRA.12463895.1273162117652.146414.1379422192661 () arcas
[Download RAW message or body]


     [ https://issues.apache.org/jira/browse/WSS-230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel \
]

Colm O hEigeartaigh resolved WSS-230.
-------------------------------------

    Resolution: Not A Problem
      Assignee: Colm O hEigeartaigh  (was: Ruchith Udayanga Fernando)
    
> WSS4JInInterceptor.getAction throws "No security action was defined" when using \
>                 Spring default-autowire="byType"
> ----------------------------------------------------------------------------------------------------------------
>  
> Key: WSS-230
> URL: https://issues.apache.org/jira/browse/WSS-230
> Project: WSS4J
> Issue Type: Bug
> Affects Versions: 1.5.8
> Environment: spring 2.5.6, wss4j 1.5.8
> Reporter: Cheng Lee
> Assignee: Colm O hEigeartaigh
> Labels: spring, wss4j
> Attachments: webservice_sample_apache_cxf.tar.gz
> 
> 
> I'm getting "No security action was defined!":
> May 6, 2010 12:11:18 PM org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor \
>                 getAction
> WARNING: No security action was defined!
> May 6, 2010 12:11:18 PM org.apache.cxf.phase.PhaseInterceptorChain \
> doDefaultLoggingWARNING: Interceptor for \
> {http://service.auth.company.com/}corporateAuthService has thrown exception, \
>                 unwinding now
> org.apache.cxf.binding.soap.SoapFault: No security action was defined!
> 	at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.getAction(WSS4JInInterceptor.java:421)
>   at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:189)
>   at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:78)
>   at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>   at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:110)
>   at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
>   at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:423)
>   at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:178)
>   at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
>   at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
>   at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
>   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> 	at java.lang.Thread.run(Thread.java:619)
> When using Spring autowire by type, WSS4jInInterceptor.setProperties() is called \
> twice, thus overwriting my configuration below: <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"
> default-autowire="byType">
> <import resource="classpath:META-INF/cxf/cxf.xml" />
> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> <jaxws:endpoint id="auth" implementor="#authServiceImpl"
> address="/swAuth">
> <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="passwordCallbackRef">
> <ref bean="serverPasswordCallback" />
> </entry>
> </map>
> </constructor-arg>
> </bean>
> </jaxws:inInterceptors>
> </jaxws:endpoint>
> <bean id="serverPasswordCallback" \
> class="com.company.auth.service.ServerPasswordCallback"> <property name="username">
> <value>ws-client</value>
> </property>
> <property name="password">
> <value>123</value>
> </property>
> </bean>
> <bean id="authServiceImpl" class="com.company.auth.service.AuthServiceImpl">
> <property name="employeeDao" ref="employeeDao" />
> </bean>
> </beans>
> ----------
> This is evidenced while debugging:
> First time at WSS4JInInterceptor instantiation it calls setProperties() with my \
> values: Thread [main] (Suspended (breakpoint at line 112 in WSS4JInInterceptor))	
> 	WSS4JInInterceptor.<init>(Map<String,Object>) line: 112	
> 	NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not \
> available [native method]	  NativeConstructorAccessorImpl.newInstance(Object[]) \
> line: 39	  DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27	
> 	Constructor<T>.newInstance(Object...) line: 513	
> 	BeanUtils.instantiateClass(Constructor, Object[]) line: 100	
> 	CglibSubclassingInstantiationStrategy(SimpleInstantiationStrategy).instantiate(RootBeanDefinition, \
> String, BeanFactory, Constructor, Object[]) line: 87	  \
> ConstructorResolver.autowireConstructor(String, RootBeanDefinition, Constructor[], \
> Object[]) line: 248	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).autowireConstructor(String, \
> RootBeanDefinition, Constructor[], Object[]) line: 925	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBeanInstance(String, \
> RootBeanDefinition, Object[]) line: 835	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, \
> RootBeanDefinition, Object[]) line: 440	  \
> AbstractAutowireCapableBeanFactory$1.run() line: 409	  \
> AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not \
> available [native method]	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, \
> RootBeanDefinition, Object[]) line: 380	  \
> BeanDefinitionValueResolver.resolveInnerBean(Object, String, BeanDefinition) line: \
> 219	  BeanDefinitionValueResolver.resolveValueIfNecessary(Object, Object) line: \
> 117	  BeanDefinitionValueResolver.resolveManagedList(Object, List) line: 287	
> 	BeanDefinitionValueResolver.resolveValueIfNecessary(Object, Object) line: 126	
> 	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).applyPropertyValues(String, \
> BeanDefinition, BeanWrapper, PropertyValues) line: 1245	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).populateBean(String, \
> AbstractBeanDefinition, BeanWrapper) line: 1010	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, \
> RootBeanDefinition, Object[]) line: 472	  \
> AbstractAutowireCapableBeanFactory$1.run() line: 409	  \
> AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not \
> available [native method]	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, \
> RootBeanDefinition, Object[]) line: 380	  AbstractBeanFactory$1.getObject() line: \
> 264	  DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String, \
> ObjectFactory) line: 222	  \
> DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String, Class, Object[], \
> boolean) line: 261	  \
> DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, Class, Object[]) \
> line: 185	  DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) line: \
> 164	  DefaultListableBeanFactory.preInstantiateSingletons() line: 429	
> 	XmlWebApplicationContext(AbstractApplicationContext).finishBeanFactoryInitialization(ConfigurableListableBeanFactory) \
> line: 728	  XmlWebApplicationContext(AbstractApplicationContext).refresh() line: \
> 380	  ContextLoader.createWebApplicationContext(ServletContext, ApplicationContext) \
> line: 255	  ContextLoader.initWebApplicationContext(ServletContext) line: 199	
> 	ContextLoaderListener.contextInitialized(ServletContextEvent) line: 45	
> 	StandardContext.listenerStart() line: 3972	
> 	StandardContext.start() line: 4467	
> 	StandardHost(ContainerBase).start() line: 1045	
> 	StandardHost.start() line: 722	
> 	StandardEngine(ContainerBase).start() line: 1045	
> 	StandardEngine.start() line: 443	
> 	StandardService.start() line: 516	
> 	StandardServer.start() line: 710	
> 	Catalina.start() line: 593	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available \
> [native method]	  NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
> 	Method.invoke(Object, Object...) line: 597	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	
> And then another invokation to setProperties(Map):
> Thread [main] (Suspended (breakpoint at line 130 in AbstractWSS4JInterceptor))	
> 	WSS4JInInterceptor(AbstractWSS4JInterceptor).setProperties(Map<String,Object>) \
> line: 130	  NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not \
> available [native method]	  NativeMethodAccessorImpl.invoke(Object, Object[]) line: \
> 39	  DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
> 	Method.invoke(Object, Object...) line: 597	
> 	BeanWrapperImpl.setPropertyValue(BeanWrapperImpl$PropertyTokenHolder, \
> PropertyValue) line: 840	  BeanWrapperImpl.setPropertyValue(PropertyValue) line: \
> 651	  BeanWrapperImpl(AbstractPropertyAccessor).setPropertyValues(PropertyValues, \
> boolean, boolean) line: 78	  \
> BeanWrapperImpl(AbstractPropertyAccessor).setPropertyValues(PropertyValues) line: \
> 59	  DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).applyPropertyValues(String, \
> BeanDefinition, BeanWrapper, PropertyValues) line: 1276	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).populateBean(String, \
> AbstractBeanDefinition, BeanWrapper) line: 1010	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, \
> RootBeanDefinition, Object[]) line: 472	  \
> AbstractAutowireCapableBeanFactory$1.run() line: 409	  \
> AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not \
> available [native method]	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, \
> RootBeanDefinition, Object[]) line: 380	  \
> BeanDefinitionValueResolver.resolveInnerBean(Object, String, BeanDefinition) line: \
> 219	  BeanDefinitionValueResolver.resolveValueIfNecessary(Object, Object) line: \
> 117	  BeanDefinitionValueResolver.resolveManagedList(Object, List) line: 287	
> 	BeanDefinitionValueResolver.resolveValueIfNecessary(Object, Object) line: 126	
> 	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).applyPropertyValues(String, \
> BeanDefinition, BeanWrapper, PropertyValues) line: 1245	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).populateBean(String, \
> AbstractBeanDefinition, BeanWrapper) line: 1010	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, \
> RootBeanDefinition, Object[]) line: 472	  \
> AbstractAutowireCapableBeanFactory$1.run() line: 409	  \
> AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not \
> available [native method]	  \
> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, \
> RootBeanDefinition, Object[]) line: 380	  AbstractBeanFactory$1.getObject() line: \
> 264	  DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String, \
> ObjectFactory) line: 222	  \
> DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String, Class, Object[], \
> boolean) line: 261	  \
> DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, Class, Object[]) \
> line: 185	  DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) line: \
> 164	  DefaultListableBeanFactory.preInstantiateSingletons() line: 429	
> 	XmlWebApplicationContext(AbstractApplicationContext).finishBeanFactoryInitialization(ConfigurableListableBeanFactory) \
> line: 728	  XmlWebApplicationContext(AbstractApplicationContext).refresh() line: \
> 380	  ContextLoader.createWebApplicationContext(ServletContext, ApplicationContext) \
> line: 255	  ContextLoader.initWebApplicationContext(ServletContext) line: 199	
> 	ContextLoaderListener.contextInitialized(ServletContextEvent) line: 45	
> 	StandardContext.listenerStart() line: 3972	
> 	StandardContext.start() line: 4467	
> 	StandardHost(ContainerBase).start() line: 1045	
> 	StandardHost.start() line: 722	
> 	StandardEngine(ContainerBase).start() line: 1045	
> 	StandardEngine.start() line: 443	
> 	StandardService.start() line: 516	
> 	StandardServer.start() line: 710	
> 	Catalina.start() line: 593	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available \
> [native method]	  NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
> 	Method.invoke(Object, Object...) line: 597	
> 	Bootstrap.start() line: 289	
> 	Bootstrap.main(String[]) line: 414	

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic