Hi,

Please ignore my last email.   When debugging the client was running
in the same process and it also has the PolicyOutInterceptor.

Combine a late night and lots of caffeine makes for confusion :)



On Mon, Feb 11, 2013 at 2:57 PM, Jason Pell <[email protected]> wrote:
> I just tried to do the same but my interceptor is called after policy out
> interceptor.  It looks like the getBefore().add is being ignored.
>
> Sent from my Galaxy S2
>
> On Jan 17, 2013 9:50 PM, "Andrei Shakirin" <[email protected]> wrote:
>>
>> Hi,
>>
>> From the first view your code seems to be OK.
>>
>> Could you please ensure two things in debugger:
>> 1) in your CustomPolicyInterceptor : your policy was successfully parsed
>> and set into message
>> 2) in CXF PolicyOutInterceptor following code recognizes your policy and
>> adds corresponded interceptors in chain:
>>         // 1. Check overridden policy
>>         Policy p =
>> (Policy)msg.getContextualProperty(PolicyConstants.POLICY_OVERRIDE);
>>         if (p != null) {
>>             EndpointPolicyImpl endpi = new EndpointPolicyImpl(p);
>>             EffectivePolicyImpl effectivePolicy = new
>> EffectivePolicyImpl();
>>             effectivePolicy.initialise(endpi, (PolicyEngineImpl)pe,
>> false);
>>             msg.put(EffectivePolicy.class, effectivePolicy);
>>             PolicyUtils.logPolicy(LOG, Level.FINEST, "Using effective
>> policy: ",
>>                                   effectivePolicy.getPolicy());
>>
>>             interceptors.addAll(effectivePolicy.getInterceptors());
>>             assertions.addAll(effectivePolicy.getChosenAlternative());
>>    }
>> ?
>>
>> Cheers,
>> Andrei.
>>
>> > -----Original Message-----
>> > From: ankur [mailto:[email protected]]
>> > Sent: Donnerstag, 17. Januar 2013 05:28
>> > To: [email protected]
>> > Subject: RE: Dynamically define WS-Policy in CXF
>> >
>> > Hi Andrei,
>> >
>> > I am trying to add username token  policy from a policy server using  a
>> > custom
>> > policy interceptor for my webservice. the code for interceptor is
>> >
>> >
>> > public class CustomPolicyInterceptor extends
>> > AbstractPhaseInterceptor<SoapMessage> {
>> >        public CustomPolicyInterceptor(){
>> >                super(Phase.SETUP);
>> >               getBefore().add(PolicyOutInterceptor.class.getName());
>> >
>> >       }
>> >
>> >
>> >       private static final long serialVersionUID =
>> > -5248428637449096540L;
>> >
>> >        public void handleMessage(SoapMessage message)
>> >        {
>> >
>> >                try{
>> >
>> >                       PolicyBuilder builder =
>> > message.getExchange().getBus().getExtension(PolicyBuilder.class);
>> >                       InputStream is = new
>> > URL("http://localhost:8880/policy/policy.xml";).openStream();
>> >                        Policy effectivePolicy = builder.getPolicy(is) ;
>> >                          message.put(PolicyConstants.POLICY_OVERRIDE,
>> > effectivePolicy);
>> >                          }
>> >                catch(Exception e) {
>> >                               System.out.println("error");
>> >                       }
>> >        }
>> >        }
>> >
>> >
>> > and my bean.xml is
>> >
>> > <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";>
>> >
>> >     <import resource="classpath:META-INF/cxf/cxf.xml" />
>> >     <import
>> > resource="classpath:META-INF/cxf/osgi/cxf-extension-osgi.xml"
>> > />
>> >
>> >  <bean id="myPasswordCallback" class="service.ServerPasswordCallback" />
>> >
>> >      <jaxws:endpoint id="doubleit"
>> >         implementor="service.DoubleItPortTypeImpl"
>> >               wsdlLocation="wsdl/DoubleIt.wsdl"
>> >        address="/doubleitexternal">
>> >         <jaxws:outInterceptors>
>> >          <bean class="service.CustomPolicyInterceptor">
>> >          </bean>
>> >       </jaxws:outInterceptors>
>> >        <jaxws:properties>
>> >          <entry key="ws-security.callback-handler"
>> > value-ref="myPasswordCallback"/>
>> >       </jaxws:properties>
>> >     </jaxws:endpoint>
>> >
>> > </beans>
>> >
>> >
>> >
>> > But policy is not getting applied to my webservice. can you please tell
>> > me
>> > what changes I need to make.
>> >
>> >
>> >
>> >
>> >
>> >
>> > --
>> > View this message in context:
>> > http://cxf.547215.n5.nabble.com/Dynamicall-
>> > y-define-WS-Policy-in-CXF-tp5713085p5721747.html
>> > Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to