[
https://jira.jboss.org/jira/browse/JBESB-2816?page=com.atlassian.jira.plu...
]
Kevin Conner commented on JBESB-2816:
-------------------------------------
This is something that we should have included in the CP/platform releases but we missed
it.
Raising the JIRA is the right way to bring it to our attention as it is now being added
into the platform.
Kev
WSSecurityInfoExtractor gets confused over SOAP header element named
'UserName'
-------------------------------------------------------------------------------
Key: JBESB-2816
URL:
https://jira.jboss.org/jira/browse/JBESB-2816
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Web Services
Affects Versions: 4.4 CP2
Environment: *Release ID: JBoss [SOA_STANDALONE] 4.3.0.GA_CP01_SOA_STANDALONE
(build: SVNTag=4.3.0.GA_CP01_SOA_STANDALONE date=200904071212)
*SUSE Linux Enterprise Server 10 (i586)
Reporter: Rune Molin
Fix For: 4.4 CP3
If I send this request to a service hooked up to a jbr-listener gateway configured for
HTTP access:
<?xml version="1.0"?>
<S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<RequestHeader xmlns="...">
<UserName>johndoe</UserName>
<HostName>xx123</HostName>
<Timestamp>2009-09-09T07:22:04.706Z</Timestamp>
</RequestHeader>
</S:Header>
<S:Body>
...
<S:Body>
<S:Envelope>
The result is an exception:
2009-09-09 07:58:09,517 ERROR
[org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener] JBoss Remoting Gateway
failed to synchronously deliver message to target service [RefData:GateService].
org.milyn.SmooksException: Unable to filter InputStream for target profile
[org.milyn.profile.Profile#default_profile].
at org.milyn.delivery.dom.SmooksDOMFilter.filter(SmooksDOMFilter.java:287)
at org.milyn.delivery.dom.SmooksDOMFilter.doFilter(SmooksDOMFilter.java:235)
at org.milyn.Smooks.filter(Smooks.java:288)
at org.milyn.Smooks.filter(Smooks.java:253)
at
org.jboss.soa.esb.services.security.auth.ws.WSSecurityInfoExtractor.extractSecurityInfo(WSSecurityInfoExtractor.java:97)
at
org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener$JBossRemotingMessageComposer.populateMessage(JBossRemotingGatewayListener.java:523)
at
org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener$JBossRemotingMessageComposer.populateMessage(JBossRemotingGatewayListener.java:487)
at
org.jboss.soa.esb.listeners.message.AbstractMessageComposer.compose(AbstractMessageComposer.java:76)
at
org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSyncWithoutDecomposing(UncomposedMessageDeliveryAdapter.java:104)
at
org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSync(UncomposedMessageDeliveryAdapter.java:86)
at
org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener.invoke(JBossRemotingGatewayListener.java:345)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:866)
at org.jboss.remoting.transport.coyote.CoyoteInvoker.service(CoyoteInvoker.java:310)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.milyn.SmooksException: Failed to apply processing unit
[org.milyn.javabean.BeanInstancePopulator] to
[org:milyn:smooks:unknowndoc:/S:Envelope/S:Header/RequestHeader/UserName].
at
org.milyn.delivery.dom.SmooksDOMFilter.processVisitorException(SmooksDOMFilter.java:748)
at org.milyn.delivery.dom.SmooksDOMFilter.access$800(SmooksDOMFilter.java:134)
at
org.milyn.delivery.dom.SmooksDOMFilter$ElementProcessor.processMapping(SmooksDOMFilter.java:733)
at
org.milyn.delivery.dom.SmooksDOMFilter$ElementProcessor.process(SmooksDOMFilter.java:671)
at
org.milyn.delivery.dom.SmooksDOMFilter$ElementProcessor.access$000(SmooksDOMFilter.java:625)
at org.milyn.delivery.dom.SmooksDOMFilter.filter(SmooksDOMFilter.java:352)
at org.milyn.delivery.dom.SmooksDOMFilter.filter(SmooksDOMFilter.java:285)
... 16 more
Caused by: org.milyn.cdr.SmooksConfigurationException: Bean instance [userNameToken] not
available and bean runtime class not set on configuration.
at org.milyn.javabean.BeanUtils.getBean(BeanUtils.java:130)
at
org.milyn.javabean.BeanInstancePopulator.populateAndSetPropertyValue(BeanInstancePopulator.java:328)
at
org.milyn.javabean.BeanInstancePopulator.populateAndSetPropertyValue(BeanInstancePopulator.java:317)
at
org.milyn.javabean.BeanInstancePopulator.bindDomDataValue(BeanInstancePopulator.java:232)
at org.milyn.javabean.BeanInstancePopulator.visitAfter(BeanInstancePopulator.java:178)
at
org.milyn.delivery.dom.SmooksDOMFilter$ElementProcessor.processMapping(SmooksDOMFilter.java:727)
... 20 more
2009-09-09 07:58:09,517 DEBUG [org.jboss.remoting.transport.coyote.CoyoteInvoker] Error
thrown calling invoke on server invoker.
org.milyn.SmooksException: Unable to filter InputStream for target profile
[org.milyn.profile.Profile#default_profile].
at org.milyn.delivery.dom.SmooksDOMFilter.filter(SmooksDOMFilter.java:287)
at org.milyn.delivery.dom.SmooksDOMFilter.doFilter(SmooksDOMFilter.java:235)
at org.milyn.Smooks.filter(Smooks.java:288)
at org.milyn.Smooks.filter(Smooks.java:253)
at
org.jboss.soa.esb.services.security.auth.ws.WSSecurityInfoExtractor.extractSecurityInfo(WSSecurityInfoExtractor.java:97)
at
org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener$JBossRemotingMessageComposer.populateMessage(JBossRemotingGatewayListener.java:523)
at
org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener$JBossRemotingMessageComposer.populateMessage(JBossRemotingGatewayListener.java:487)
at
org.jboss.soa.esb.listeners.message.AbstractMessageComposer.compose(AbstractMessageComposer.java:76)
at
org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSyncWithoutDecomposing(UncomposedMessageDeliveryAdapter.java:104)
at
org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSync(UncomposedMessageDeliveryAdapter.java:86)
at
org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener.invoke(JBossRemotingGatewayListener.java:345)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:866)
at org.jboss.remoting.transport.coyote.CoyoteInvoker.service(CoyoteInvoker.java:310)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.milyn.SmooksException: Failed to apply processing unit
[org.milyn.javabean.BeanInstancePopulator] to
[org:milyn:smooks:unknowndoc:/S:Envelope/S:Header/RequestHeader/UserName].
at
org.milyn.delivery.dom.SmooksDOMFilter.processVisitorException(SmooksDOMFilter.java:748)
at org.milyn.delivery.dom.SmooksDOMFilter.access$800(SmooksDOMFilter.java:134)
at
org.milyn.delivery.dom.SmooksDOMFilter$ElementProcessor.processMapping(SmooksDOMFilter.java:733)
at
org.milyn.delivery.dom.SmooksDOMFilter$ElementProcessor.process(SmooksDOMFilter.java:671)
at
org.milyn.delivery.dom.SmooksDOMFilter$ElementProcessor.access$000(SmooksDOMFilter.java:625)
at org.milyn.delivery.dom.SmooksDOMFilter.filter(SmooksDOMFilter.java:352)
at org.milyn.delivery.dom.SmooksDOMFilter.filter(SmooksDOMFilter.java:285)
... 16 more
Caused by: org.milyn.cdr.SmooksConfigurationException: Bean instance [userNameToken] not
available and bean runtime class not set on configuration.
at org.milyn.javabean.BeanUtils.getBean(BeanUtils.java:130)
at
org.milyn.javabean.BeanInstancePopulator.populateAndSetPropertyValue(BeanInstancePopulator.java:328)
at
org.milyn.javabean.BeanInstancePopulator.populateAndSetPropertyValue(BeanInstancePopulator.java:317)
at
org.milyn.javabean.BeanInstancePopulator.bindDomDataValue(BeanInstancePopulator.java:232)
at org.milyn.javabean.BeanInstancePopulator.visitAfter(BeanInstancePopulator.java:178)
at
org.milyn.delivery.dom.SmooksDOMFilter$ElementProcessor.processMapping(SmooksDOMFilter.java:727)
... 20 more
Changing <UserName>johndoe</UserName> into
<NameOfUser>johndoe</NameOfUser> fixes the problem.
My guess is that the smooks transformation that looks for the WS-Security element
'UserNameToken' is not specific enough, so it picks up this 'UserName'
element, which is not related to WS-Security in any way
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira