Thanks Daniel,
I will rework my code.
My WSS4JOutInterceptor was added like this :
<!-- org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor -->
<bean class=*"com.tibco.cts.amxbpm.fwk.security.MyWSS4JOutInterceptor"*
id=*"outbound-security"*>
<constructor-arg>
<map>
<entry key=*"action"* value=*"UsernameToken"* />
<entry key=*"user"* value=*"tibco-admin"* />
<entry key=*"passwordType"* value=*"PasswordText"* />
<entry key=*"passwordCallbackClass"*
value=*
"com.tibco.cts.amxbpm.fwk.security.PasswordCallbackHandler"* />
</map>
</constructor-arg>
</bean>
<jaxws:client id=*"WorkListServiceProxyFactory"*
name=*"{http://services.brm.n2.tibco.com}WorkListService_EP"*
serviceClass=*"com.tibco.n2.brm.services.WorkListService"*
address=*"http://
${amxbpm.ws.host}:${amxbpm.ws.port}/amxbpm/WorkListService"*>
<jaxws:outInterceptors>
<ref bean=*"outbound-security"* />
</jaxws:outInterceptors>
</jaxws:client>
On Fri, Oct 18, 2013 at 6:29 PM, DSL <[email protected]> wrote:
> If you want your interceptor to execute after the WSS4JOutInterceptor then
> the configuration would look like:
>
> <cxf:outInterceptors>
> <ref bean="WSS4JOutInterceptor"/>
> <ref bean="RefToAbstractPhaseInterceptorBean"/>
> </cxf:outInterceptors>
>
> If the WSS4J is not defined in the list of outInterceptors, then your
> interceptor will never get run. Do you have the WSS4JOutInterceptor
> configured and added to the list of out interceptors?
>
>
> On Fri, Oct 18, 2013 at 12:12 PM, Manson Thomas <[email protected]>
> wrote:
>
> > Can you expand your idea?
> >
> >
> >
> > I would put this AbstractPhaseInterceptor in here :
> >
> >
> > <cxf:bus>
> >
> > <cxf:features>
> >
> > <p:policies />
> >
> > <cxf:logging />
> >
> > </cxf:features>
> >
> > <cxf:outInterceptors>
> >
> > <ref bean="RefToAbstractPhaseInterceptorBean" />
> >
> > </cxf:outInterceptors>
> >
> > </cxf:bus>
> >
> > and the constructor of this class would be like :
> >
> >
> >
> >
> > public SecurityCxfInterceptor()
> >
> > {
> >
> > super(Phase.PRE_PROTOCOL); // should I need to call super with this
> > kind of parameter?
> >
> >
> >
> > this.addAfter(SecurityCxfInterceptor.class.getName());
> >
> > }
> >
> >
> >
> >
> >
> >
> >
> >
> > On Fri, Oct 18, 2013 at 5:56 PM, DSL <[email protected]> wrote:
> >
> > > Thomas,
> > >
> > > You just need to create a class that extends AbstractPhaseInterceptor
> > > and add this in your constructor:
> > >
> > > addAfter( WSS4JOutInterceptro.class.getName() );
> > >
> > >
> > > On Fri, Oct 18, 2013 at 11:04 AM, Thomas Manson
> > > <[email protected]>wrote:
> > >
> > > > Hi,
> > > >
> > > > I'm trying to call a webservice and dynamically change the
> username.
> > > >
> > > > To do that I've tried to add a CXF interceptor that would update
> the
> > > > current username setted by WSS4JOutInterceptor.
> > > >
> > > > Unfortunately, I didn't succeed to make my interceptor to get
> > executed
> > > > after WSS4JOutInterceptor so the SoapHeader is empty.
> > > >
> > > > I've tried that :
> > > >
> > > > public class SecurityCxfInterceptor extends AbstractSoapInterceptor
> > > >
> > > > {
> > > >
> > > > public SecurityCxfInterceptor()
> > > >
> > > > {
> > > >
> > > > super(Phase.PRE_PROTOCOL);
> > > >
> > > >
> > > >
> > > > // this.getAfter().add(SAAJOutInterceptor.class.getName());
> > > >
> > > > // this.getBefore().add(WSS4JOutInterceptor.class.getName());
> > > >
> > > > this.addAfter(SecurityCxfInterceptor.class.getName());
> > > >
> > > > }
> > > >
> > > > with this spring configuration
> > > >
> > > >
> > > > <bean id="SecurityCxfInterceptor"
> > > > class="com.tibco.cts.amxbpm.fwk.security.SecurityCxfInterceptor" />
> > > >
> > > >
> > > > <cxf:bus>
> > > > <cxf:features>
> > > > <p:policies />
> > > > <cxf:logging />
> > > > </cxf:features>
> > > > <cxf:outInterceptors>
> > > > <ref bean="SecurityCxfInterceptor" />
> > > > </cxf:outInterceptors>
> > > > </cxf:bus>
> > > >
> > > >
> > > > And I've aslo tried to extend WSS4JOutInterceptor but it doesn't
> work,
> > > > as WSS4JOutInterceptor just add an EndingInterceptor which point to
> an
> > > > internal call that does the job.
> > > >
> > > >
> > > > Can somebody put me on the correct track to have my interceptor
> > exectued
> > > > after WSS4JOutInterceptor so that I can update the username?
> > > >
> > > >
> > > >
> > > > Thanks,
> > > >
> > > > Thomas.
> > > >
> > >
> >
>