You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wss4j-dev@ws.apache.org by "Cheng Lee (JIRA)" <ji...@apache.org> on 2010/05/06 18:09:47 UTC
[jira] Created: (WSS-230) WSS4JInInterceptor.getAction throws "No
security action was defined" when using Spring default-autowire="byType"
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: Ruchith Udayanga Fernando
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.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org
[jira] Commented: (WSS-230) WSS4JInInterceptor.getAction throws "No
security action was defined" when using Spring default-autowire="byType"
Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WSS-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12864825#action_12864825 ]
Daniel Kulp commented on WSS-230:
---------------------------------
This is really just the way spring works and not much WE can do about it. However, you can make it work correctly for your case by using the property directly and not use the constrctor arg:
<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">
<property name="properties">
<map>
<entry key="action" value="UsernameToken" />
<entry key="passwordType" value="PasswordText" />
<entry key="passwordCallbackRef">
<ref bean="serverPasswordCallback" />
</entry>
</map>
</property>
</bean>
</jaxws:inInterceptors>
</jaxws:endpoint>
Since there will be a definition for the properties property, it will use it.
> 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: Ruchith Udayanga Fernando
> 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.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org
[jira] Updated: (WSS-230) WSS4JInInterceptor.getAction throws "No
security action was defined" when using Spring default-autowire="byType"
Posted by "Cheng Lee (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WSS-230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Cheng Lee updated WSS-230:
--------------------------
Attachment: webservice_sample_apache_cxf.tar.gz
I'm attaching a Maven project to reproduce the test case.
Deploy the webservice to http://localhost:8180/cxf_ws-security_spring/services/swAuth
Then:
Run src/test/java/com/company/auth/service/client/AuthServiceFactoryIntegTest.java
> 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: Ruchith Udayanga Fernando
> 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.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org
[jira] Commented: (WSS-230) WSS4JInInterceptor.getAction throws "No
security action was defined" when using Spring default-autowire="byType"
Posted by "Cheng Lee (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WSS-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12865163#action_12865163 ]
Cheng Lee commented on WSS-230:
-------------------------------
Thank you Daniel for your quick response :)
Setting the property directly works but I'm worried about some properties not being set. For instance, If constructor arguments is used in combination with default-autowire="byType", then WSS4jInInterceptor.setProperties() is called first with these properties:
{action=UsernameToken, passwordType=PasswordText, passwordCallbackRef=com.company.auth.service.ServerPasswordCallback@1fd6f07}
And then with these in the second WSS4jInInterceptor.setProperties() call:
{cxf=org.apache.cxf.bus.CXFBusImpl@c77c8, org.apache.cxf.bus.spring.BusApplicationListener=org.apache.cxf.bus.spring.BusApplicationListener@442c76, org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor=org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor@8c0d58, org.apache.cxf.bus.spring.Jsr250BeanPostProcessor=org.apache.cxf.bus.spring.Jsr250BeanPostProcessor@c02d83, org.apache.cxf.bus.spring.BusExtensionPostProcessor=org.apache.cxf.bus.spring.BusExtensionPostProcessor@ec0962, org.apache.cxf.resource.ResourceManager=org.apache.cxf.bus.resource.ResourceManagerImpl@5c18ff, org.apache.cxf.configuration.Configurer=org.apache.cxf.configuration.spring.ConfigurerImpl@6d12a9, org.apache.cxf.binding.BindingFactoryManager=org.apache.cxf.binding.BindingFactoryManagerImpl@e427ed, org.apache.cxf.transport.DestinationFactoryManager=org.apache.cxf.transport.DestinationFactoryManagerImpl@f9748f, org.apache.cxf.transport.ConduitInitiatorManager=org.apache.cxf.transport.ConduitInitiatorManagerImpl@1537060, org.apache.cxf.wsdl.WSDLManager=org.apache.cxf.wsdl11.WSDLManagerImpl@f6ede1, org.apache.cxf.phase.PhaseManager=org.apache.cxf.phase.PhaseManagerImpl@17b60b6, org.apache.cxf.workqueue.WorkQueueManager=org.apache.cxf.workqueue.WorkQueueManagerImpl@10a4d7c, org.apache.cxf.buslifecycle.BusLifeCycleManager=org.apache.cxf.buslifecycle.CXFBusLifeCycleManager@1652e61, org.apache.cxf.endpoint.ServerRegistry=org.apache.cxf.endpoint.ServerRegistryImpl@1c7eb33, org.apache.cxf.endpoint.ServerLifeCycleManager=org.apache.cxf.endpoint.ServerLifeCycleManagerImpl@226649, org.apache.cxf.endpoint.ClientLifeCycleManager=org.apache.cxf.endpoint.ClientLifeCycleManagerImpl@695527, org.apache.cxf.transports.http.QueryHandlerRegistry=org.apache.cxf.transport.http.QueryHandlerRegistryImpl@1559ba8, org.apache.cxf.endpoint.EndpointResolverRegistry=org.apache.cxf.endpoint.EndpointResolverRegistryImpl@15e6691, org.apache.cxf.headers.HeaderManager=org.apache.cxf.headers.HeaderManagerImpl@9fe666, org.apache.cxf.catalog.OASISCatalogManager=org.apache.cxf.catalog.OASISCatalogManager@1cf6f61, org.apache.cxf.endpoint.ServiceContractResolverRegistry=org.apache.cxf.endpoint.ServiceContractResolverRegistryImpl@19988c7, org.apache.cxf.binding.soap.SoapBindingFactory=org.apache.cxf.binding.soap.SoapBindingFactory@e2fa0e, org.apache.cxf.binding.soap.SoapTransportFactory=org.apache.cxf.binding.soap.SoapTransportFactory@18ed284, org.apache.cxf.binding.soap.customEditorConfigurer=org.springframework.beans.factory.config.CustomEditorConfigurer@19eef79, org.apache.cxf.transport.servlet.ServletTransportFactory=org.apache.cxf.transport.servlet.ServletTransportFactory@17c3056, auth=org.apache.cxf.jaxws.spring.EndpointDefinitionParser$SpringEndpointImpl@499f7d, serverPasswordCallback=com.company.auth.service.ServerPasswordCallback@1fd6f07, authServiceImpl=com.company.auth.service.AuthServiceImpl@185e155, employeeDao=com.company.auth.dao.EmployeeDaoImpl@8cd4db, messageSource=org.springframework.context.support.DelegatingMessageSource@1ea8dbd, applicationEventMulticaster=org.springframework.context.event.SimpleApplicationEventMulticaster@1ff83a9}
As you can see, a lot of CXF beans are injected as properties and I think they might be needed.
On the other hand, if I inject my properties directly instead of using the constructor approach, then I will only have MY properties and not all CXF properties. I'm afraid missing all these will cause further malfunction.
> 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: Ruchith Udayanga Fernando
> 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.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org
[jira] Commented: (WSS-230) WSS4JInInterceptor.getAction throws "No
security action was defined" when using Spring default-autowire="byType"
Posted by "Cheng Lee (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WSS-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12865174#action_12865174 ]
Cheng Lee commented on WSS-230:
-------------------------------
Looking it a bit closer, it seems that the properties being set on the second call is the Spring Context Properties since it contains nearly all beans I think my sample application has. As I was using autowire by type, Spring is probably injecting whatever Properties it can find in the context.
I'm wondering if setProperties(Map<String, Object> properties) can be qualified using @Qualifier so that it would only inject a Map with a pre-defined ID but a name clash might occur if it's already in use. So calling setProperties() explicitly really seems to be the only solution. But I do think that the constructor "public WSS4JInInterceptor(Map<String, Object> properties)" is evil since in this use case, it will cause problems.
Could future versions of WSS4J log a warning stating that autowire by type + properties injection by constructor is a deadly combination (or better yet... deprecate it)? This really took me several days to figure out what was going on and I'm afraid many will go thru the same.
> 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: Ruchith Udayanga Fernando
> 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.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org