[ 
https://issues.apache.org/jira/browse/AXIS2-4233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12671014#action_12671014
 ] 

Keith Godwin Chapman commented on AXIS2-4233:
---------------------------------------------

Alexis,

What is the URL you sent to request to?

Since Axis2 1.4 the way we calculate the effective policy changed a bit. Back 
then we didn't have the concept of storing the security policies in the binding 
hierarchy. Now to get the security policy correctly you have to dispatch to the 
correct binding. So essentially if a policy is attached st the binding level 
(Say the portName is SOAP12Binding) you need to send the request to 
serviceName.endpointName in order to pick that policy.

If a request is sent to serviceName alone we try to deduce the binding looking 
at the payload and in this case that may not work for you cause the payload is 
encrypted.

Could you try sending the request to serviceName.endpontName instead.

Thanks,
Keith.  



> Regression in MessageContext#getEffectivePolicy between 1.3 and 1.4/1.5
> -----------------------------------------------------------------------
>
>                 Key: AXIS2-4233
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4233
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.5, 1.4.1, 1.4
>            Reporter: Alexis Midon
>            Priority: Blocker
>
> Here is the use case:
> A security policy is attached to my service (using a service.xml document and 
> a ServiceBuilder).
> A message comes in, and reaches the RampartReceiver. At this point *only* the 
> targeted service has been resolved by the preceding dispatchers, so no 
> operation nor AxisMessage [4] are attached to the MessageContext yet . 
> Actually the information required to resolve the operation is encrypted. So 
> the MessageContext knows about the service *only*.
> Then the RampartReceiver tries to get the policy to be applied. This is done 
> in RampartMessageData. To do that, MessageContext#getEffectivePolicy is 
> invoked.
> In axis2 1.3, MessageContext#getEffectivePolicy [1] has a logic to retrieve 
> the policy from the service instance. But in axis2 1.4 [2], the logic is 
> different and never tries to get the policy from the service. So Rampart 
> cannot do its job, and my service invocation fails :(
> To get the effective policy, the current implementation of 
> MessageContext#getEffectivePolicy uses an instance of AxisBindingMessage if 
> any. But  AxisBindingMessage also requires the operation to be known [5] So I 
> cannot workaround my problem, afaik.
> It seems that this issue has already been spotted [3] but I haven't found any 
> related Jiras. And the regression is still in 1.5.
> A fix for axis2 1.5 will be really helpful.
> [1] 
> http://svn.apache.org/repos/asf/webservices/axis2/tags/java/v1.3/modules/kernel/src/org/apache/axis2/context/MessageContext.java
> [2] 
> http://svn.apache.org/repos/asf/webservices/axis2/tags/java/v1.4.1/modules/kernel/src/org/apache/axis2/context/MessageContext.java
> [3] http://markmail.org/thread/ghsdxqdwnhec7puo
> [4] line 114, 
> http://svn.apache.org/repos/asf/webservices/axis2/tags/java/v1.4.1/modules/kernel/src/org/apache/axis2/engine/AbstractDispatcher.java
> [5] line 275, 
> http://svn.apache.org/repos/asf/webservices/axis2/tags/java/v1.4.1/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to