Hi Andrei,
So option a) seems to be the best one for me, I've tried this :
<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:binding>
<soap:soapBinding version="1.1" />
</jaxws:binding>
<jaxws:features>
<cxf:fastinfoset />
</jaxws:features>
<jaxws:outInterceptors>
<ref bean="AMXBPMSecurityWSS4JOutInterceptor" />
</jaxws:outInterceptors>
</jaxws:client>
I've tested it with success !
Thanks very much ;)
Thomas.
On Wed, Feb 19, 2014 at 8:53 AM, Andrei Shakirin <[email protected]>wrote:
> Hi,
>
> Basically you have the same options:
> - configure different credentials per client;
> - recognize service endpoint (or logical name) in interceptor and get
> corresponded credentials from configuration
>
> Regards,
> Andrei
>
> > -----Original Message-----
> > From: Thomas Manson [mailto:[email protected]]
> > Sent: Dienstag, 18. Februar 2014 20:34
> > To: [email protected]
> > Subject: Re: Per Client interceptor
> >
> > Hi,
> >
> > any practical solution to call two different webservices with different
> > credentials ?
> >
> > Thomas.
> >
> > On Fri, Feb 7, 2014 at 1:03 AM, Thomas Manson
> > <[email protected]> wrote:
> > > Hi All,
> > >
> > > I don't understand why we talk about server side, for me it's just
> > > about client (and an interceptor in the "out" way)
> > >
> > > I've 2 webservices to call (so client side for both) (a set of WSDL
> > > for application A, and another WSDL for application B, A & B are
> > > third party application that expose webservices (ie: server side))
> > >
> > > I want to add security header for one of them independently of the
> > > other (only for soap request that will hit application A)
> > >
> > > One of my idea was to check in my OutInterceptor which endpoint is
> > > called to see if I have to add security headers or not.
> > > So my interceptor would just care about my soap call, not other soap
> > > call. If other soap call need interceptor they would add another one
> > > which take care of their endpoints. (also piling interceptor may not
> > > be the best things for performances)
> > >
> > > But I thought there would a more simpler way of doing, just by
> configuration.
> > > I don't think it's that exotic that Application X call Application A
> > > & B with different credentials (or other specific stuff).
> > >
> > > Regards,
> > > Thomas.
> > >
> > >
> > >
> > > On Thu, Feb 6, 2014 at 10:23 PM, Sergey Beryozkin <
> [email protected]>
> > wrote:
> > >> Hi
> > >>
> > >> On 06/02/14 19:17, Daniel Kulp wrote:
> > >>>
> > >>>
> > >>> There are a couple of options:
> > >>>
> > >>> 1) In your interceptor itself, detect if it’s client side or server
> > >>> side and act appropriately. We have a MessageUtils.isRequestor(msg)
> > >>> method that will return true if we’re on the client (requestor) side.
> > >>>
> > >>> 2) Implement a ClientLifecycleListener that would only add the
> > >>> interceptor at creation. It wouldn’t apply to servers then.
> > >>>
> > >>
> > >> I've been thinking at the introduction of a new @Scope (sub)
> > >> annotation too, haven't had the time to look more into it, but if
> > >> introduced it can offer another option,
> > >>
> > >> Thanks, Sergey
> > >>
> > >>
> > >>>
> > >>>
> > >>> Dan
> > >>>
> > >>>
> > >>>
> > >>> On Feb 6, 2014, at 8:28 AM, Thomas Manson
> > >>> <[email protected]>
> > >>> wrote:
> > >>>
> > >>>> Hi,
> > >>>>
> > >>>> I've build a library that calls a set of webservices (provided by
> > >>>> the same application) with CXF.
> > >>>>
> > >>>> I've my own interceptor that is attached to the Bus :
> > >>>>
> > >>>> <cxf:bus>
> > >>>> <cxf:features>
> > >>>> <p:policies />
> > >>>> <cxf:logging />
> > >>>> </cxf:features>
> > >>>> <cxf:outInterceptors>
> > >>>> <ref bean="AMXBPMSecurityWSS4JOutInterceptor" />
> > >>>> </cxf:outInterceptors>
> > >>>> </cxf:bus>
> > >>>>
> > >>>> My library is included in a webapplication, that needs to consume
> > >>>> another webservice (different from the one used by my library).
> > >>>>
> > >>>> with my interceptor I trap all outgoing soap call, so it interfere
> > >>>> with the webapp soap call, and make them fail for security reasons.
> > >>>>
> > >>>> How can I configure my interceptor only for a set of clients, so
> > >>>> that my library is agnostic and do not interfere with other soap
> call?
> > >>>>
> > >>>> All example I've found attach the interceptor to the bus.
> > >>>>
> > >>>> Regards,
> > >>>> Thomas.
> > >>>
> > >>>
> > >>
> > >>
> > >> --
> > >> Sergey Beryozkin
> > >>
> > >> Talend Community Coders
> > >> http://coders.talend.com/
> > >>
> > >> Blog: http://sberyozkin.blogspot.com
>