ws-kandula-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Detelin Yordanov (JIRA)" <>
Subject [jira] Commented: (AXIS2-4114) Problem to retrieve the effective policy from MessageContext when we have policy attachment at binding level
Date Wed, 07 Jul 2010 11:29:50 GMT


Detelin Yordanov commented on AXIS2-4114:

Hi guys,
   I can see that MessageContext#findBindingMessage() is using the "default" service endpoint,
is that OK? 
Since this is normally the first one in the wsdl (e.g. soap 1.1), but the current invokation
might be using a different endpoint (e.g. soap 1.2), right?

> Problem to retrieve the effective policy from MessageContext when we have policy attachment
at binding level
> ------------------------------------------------------------------------------------------------------------
>                 Key: AXIS2-4114
>                 URL:
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>            Reporter: Dobri Kitipov
>            Assignee: Nandana Mihindukulasooriya
>         Attachments: MessageContext_effectivePolicy.patch
> Hi,
> I have a problem when I try to get the effective policy from a MessageContext when I
have a policy attached at the binding level of a Web Service. I am using Axis2 1.4.0
> Let me explain a little bit the scenario I have. I am using an AAR that has into its
> <parameter name="useOriginalwsdl">true</parameter>
> and a PolicyAttachment at its service level:
> <wsp:PolicyAttachment xmlns:wsp="">
>             <wsp:AppliesTo>
>                 <policy-subject identifier="binding:soap11"/>
>                 <policy-subject identifier="binding:soap12"/>
>             </wsp:AppliesTo>
>             <wsp:Policy wsu:Id="User" xmlns:wsp=""
> </wsp:PolicyAttachment>
> As a result the WSDL generated has the policy specified and policy reference at the binding
subject level. Here is an excerpt from the wsdl for the SOAP11Binding:
> <wsdl:binding name="MTOMServiceSOAP11Binding" type="tns:MTOMServicePortType">
> <soap:binding style="document" transport=""/>
> <wsp:PolicyReference URI="#User"/>
> At client side I have a dynamic client. So the issue is that when I invoke the service
and the WSDL is read and the corresponding AxisService object is crated at the client side
I have some modules' handlers that take palce. One of them is a custom one in which I have
the following invocation:
> Policy policy = msgCtx.getEffectivePolicy();
> The problem is that this returns "null"! I debugged this and it came out that msgCtx
is not null. When the method is invoked it tries to calculate the effective policy as given
>          AxisBindingMessage bindingMessage =
>              (AxisBindingMessage)
>  getProperty(Constants.AXIS_BINDING_MESSAGE);
>          if (bindingMessage != null) {
>              return bindingMessage.getEffectivePolicy();
>          } else {
>              if (axisMessage != null) {
>                  return axisMessage.getEffectivePolicy();
>              } else {
>                  return null;
>              }
>          }
> where bindingMessage  is null and axisMessage.getEffectivePolicy(); returns null, too.
When I dig through the AxisService -> AxisEndpoint -> AxisBinding -> here the PolicySubject
is in fact a PolicyReference to the Policy that is set into the AxisService policyMap. So
as a result axisMessage.getEffectivePolicy() returns null and I can not get the Policy I need.
> I saw that I need something like the AxisDescription.getApplicablePolicy in order to
locate the real Policy of a given PolicyReference.
> You can see the patch applied that I have tested and seem to me that works fine.
> Thank you in advance,
> Dobri

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:
For additional commands, e-mail:

View raw message