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.
