axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexis Midon (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-4233) Regression in MessageContext#getEffectivePolicy between 1.3 and 1.4/1.5
Date Tue, 10 Feb 2009 22:43:59 GMT

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

Alexis Midon commented on AXIS2-4233:
-------------------------------------


A workaround is to the busywork for Axis2. A custom dispatcher resolves the policy in a way
similar to what axis2 1.3 used to do:

                Policy policy = PolicyUtil.getMergedPolicy(new ArrayList(service.getPolicySubject().getAttachedPolicyComponents()),
service);
                messageContext.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);

> 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.


Mime
View raw message