No, you need to reference the security policy, as well as provide any
security configuration. Here is an example:

http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/policy/client/client.xml?view=markup

Colm.


On Thu, Oct 3, 2013 at 9:59 PM, Thomas Manson <[email protected]>wrote:

> Hi Colm,
>
>  I can't modify the WSDL, it's a product WSDL and modifying the WSDL will
> make us loose support from the Editor.
>
>  So I guess it's all in client side that I must do something.
>
>  I did try to put in the client configuration :
>
>      <jaxws:properties>
>
>         <entry key="passwordType"
>
>              value="PasswordText" />
>  I've looked the constant values of :
>
>     properties.put(WSHandlerConstants.PASSWORD_TYPE   , WSConstants.
> PW_TEXT);// "PasswordDigest"
>
> to do so, but with no luck.
>
>
> any suggestion to correctly apply security policye ?
>
>
> is something like the following a good direction? (I'll search tomorrow)
>
> <jaxws:properties>
>
>         <entry key="ws-security.password"
> value="com.mansonthomas.MyPasswordCallBackHandlerClass"/>
>
> (or  ref="MyPasswordCallBackHandlerBean"/>
>
> Thanks,
>
> Thomas.
>
>
> On Thu, Oct 3, 2013 at 10:29 AM, Colm O hEigeartaigh 
> <[email protected]>wrote:
>
>>
>> The configuration looks ok, but it looks like there is no security
>> policy, and hence no security header is added to the request? There needs
>> to be either a security policy specified in the WSDL, or alternatively you
>> can reference one in your jaxws:client configuration. If you need
>> UsernameToken I suggest looking at one of the policies in the tests here:
>>
>>
>> http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/ws-security-examples/src/test/resources/org/apache/cxf/systest/wssec/examples/ut/DoubleItUt.wsdl?view=markup
>>
>> Or for SAML:
>>
>>
>> http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/ws-security-examples/src/test/resources/org/apache/cxf/systest/wssec/examples/saml/DoubleItSaml.wsdl?view=markup
>>
>> Colm.
>>
>>
>> On Wed, Oct 2, 2013 at 12:27 PM, Thomas Manson <
>> [email protected]> wrote:
>>
>>> I forgot to include the webservice2.xml file :
>>>
>>>
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <beans xmlns="http://www.springframework.org/schema/beans";
>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>   xmlns:jaxws="http://cxf.apache.org/jaxws";
>>>
>>>   xmlns:cxf="http://cxf.apache.org/core";
>>>   xmlns:p="http://cxf.apache.org/policy";
>>>
>>>   xsi:schemaLocation="
>>>       http://www.springframework.org/schema/beans
>>>       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>>>       http://cxf.apache.org/jaxws
>>>       http://cxf.apache.org/schemas/jaxws.xsd
>>>       http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
>>>       ">
>>>
>>>
>>>
>>>     <cxf:bus>
>>>         <cxf:features>
>>>             <p:policies/>
>>>             <cxf:logging/>
>>>         </cxf:features>
>>>     </cxf:bus>
>>>
>>>
>>>    <jaxws:client
>>>               id="WorkListServiceProxyFactory"
>>>             name="{http://services.brm.n2.tibco.com}WorkListService_EP";
>>>     serviceClass="com.tibco.n2.brm.services.WorkListService"
>>>          address="http://192.168.2.212:8080/amxbpm/WorkListService";>
>>>
>>>      <jaxws:properties>
>>>         <entry key="ws-security.callback-handler"
>>>
>>>  
>>> value="com.mansonthomas.amxbpm.customwebapp.services.amxbpm.security.PasswordCallbackHandler"
>>> />
>>>       </jaxws:properties>
>>>   </jaxws:client>
>>>
>>> </beans>
>>>
>>>
>>> On Wed, Oct 2, 2013 at 12:37 PM, Thomas Manson <
>>> [email protected]> wrote:
>>>
>>>> Hi Colm,
>>>>
>>>>   I can't make it work while I'm exactly in the configuration you're
>>>> suggesting (and that is in the example you gave me) and I don't get what I
>>>> miss :
>>>>
>>>> So in my spring bean, I initialize as suggested the WebService :
>>>>
>>>>
>>>>
>>>> ###################################################################################
>>>> public WorkListServiceImpl2( ContextService contextService) throws
>>>> Exception
>>>> {
>>>>   this.contextService = contextService;
>>>>
>>>>   SpringBusFactory bf = new SpringBusFactory();
>>>>   URL busFile =
>>>> this.contextService.getResource("/WEB-INF/spring/webservices2.xml");
>>>>
>>>>   Bus bus = bf.createBus(busFile.toString());
>>>>   SpringBusFactory.setDefaultBus(bus);
>>>>   SpringBusFactory.setThreadDefaultBus(bus);
>>>>
>>>>   URL     wsdl      =
>>>> this.contextService.getResource("/wsdl/brm.wsdl");
>>>>   Service service   = Service.create(wsdl, new QName("
>>>> http://services.brm.n2.tibco.com","WorkListService";));
>>>>   QName   portQName = new QName("http://services.brm.n2.tibco.com";,
>>>> "WorkListService_EP");
>>>>
>>>>   this.workListService = service.getPort(portQName,
>>>> WorkListService.class);
>>>>
>>>> }
>>>>
>>>> ###################################################################################
>>>>
>>>> I use afterPropertySet() of Spring to call the webservice right after
>>>> Spring init.
>>>>
>>>>
>>>> ###################################################################################
>>>> public List<WorkItemFwk> getWorkListItems(String username,
>>>> WorkListItemQuery workListItemQuery)
>>>> {
>>>> //... init this object : getWorkListItems
>>>> try
>>>> {
>>>>
>>>> ((BindingProvider)this.workListService).getRequestContext().put("thread.local.request.context",
>>>> "true");
>>>>
>>>> ((BindingProvider)this.workListService).getRequestContext().put(SecurityConstants.USERNAME,
>>>> username);
>>>>
>>>>   getWorkListItemsResponse =
>>>> this.workListService.getWorkListItems(getWorkListItems);
>>>> }
>>>> catch(Exception e)
>>>> {
>>>>   logger.error("Error while getting worklistItems for
>>>> "+workListItemQuery.toString(),e);
>>>> }
>>>>
>>>> ###################################################################################
>>>>
>>>> And yet there's no SOAP header set in the request:
>>>>
>>>>
>>>>  oct. 02, 2013 12:28:11 PM
>>>> org.apache.cxf.services.WorkListService.WorkListService_EP.WorkListService
>>>> INFO: Outbound Message
>>>> ---------------------------
>>>> ID: 1
>>>> Address: http://192.168.2.212:8080/amxbpm/WorkListService
>>>> Encoding: UTF-8
>>>> Http-Method: POST
>>>> Content-Type: text/xml
>>>> Headers: {Accept=[*/*], SOAPAction=["getWorkListItems"]}
>>>> Payload: <soap:Envelope xmlns:soap="
>>>> http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><ns2:getWorkListItems
>>>> xmlns:ns2="http://api.brm.n2.tibco.com"; xmlns:ns3="
>>>> http://exception.api.brm.n2.tibco.com"; xmlns:ns4="
>>>> http://exception.api.common.n2.tibco.com"; xmlns:ns5="
>>>> http://www.tibco.com/XPD/ScriptDescriptor/"; xmlns:ns6="
>>>> http://exception.api.de.n2.tibco.com"; startPosition="0"
>>>> numberOfItems="10" getTotalCount="true"><entityID entity-type="RESOURCE"
>>>> guid="tibco-admin"
>>>> model-version="-1"/><orderFilterCriteria/></ns2:getWorkListItems></soap:Body></soap:Envelope>
>>>> --------------------------------------
>>>>
>>>> So I get the following expection :
>>>>
>>>> javax.xml.ws.soap.SOAPFaultException: Authentication Failed.
>>>> AuthNSAML20Principal set in Subject is null or empty.
>>>>
>>>>
>>>> oct. 02, 2013 12:28:11 PM
>>>> org.apache.cxf.services.WorkListService.WorkListService_EP.WorkListService
>>>> INFO: Inbound Message
>>>> ----------------------------
>>>> ID: 1
>>>> Response-Code: 500
>>>> Encoding: UTF-8
>>>> Content-Type: text/xml; charset=utf-8
>>>> Headers: {Content-Length=[605], content-type=[text/xml; charset=utf-8],
>>>> Date=[Wed, 02 Oct 2013 10:27:43 GMT], Expires=[Thu, 01 Jan 1970 00:00:00
>>>> GMT],
>>>> Set-Cookie=[JSESSIONID=1houdu4luwh4caof40jy2d8x6;Path=/amxbpm;HttpOnly]}
>>>> Payload: <?xml version="1.0" encoding="UTF-8"?>
>>>> <SOAP-ENV:Envelope xmlns:SOAP-ENV="
>>>> http://schemas.xmlsoap.org/soap/envelope/";><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Authentication
>>>> Failed. AuthNSAML20Principal set in Subject is null or
>>>> empty.</faultstring><faultactor>DefaultRole</faultactor><detail><tibco:myFaultDetail
>>>> xmlns:tibco="http://tibcouri/";>com.tibco.amf.spline.api.context.SplineMessagingException:
>>>> Authentication Failed. AuthNSAML20Principal set in Subject is null or 
>>>> empty.
>>>>
>>>> </tibco:myFaultDetail></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
>>>> --------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>> Any idea before I jump through the window ? ;)
>>>>
>>>> Thanks,
>>>> Thomas.
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Sep 26, 2013 at 4:36 PM, Thomas Manson <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Colm,
>>>>>
>>>>> I know I'm probably exasperating you with my dumb questions, but I
>>>>> really need help...
>>>>>
>>>>>
>>>>>   So reading the FAQ, I understand that we're thread safe if we use :
>>>>>
>>>>>   ((BindingProvider)proxy).getRequestContext().put(
>>>>> "thread.local.request.context", "true");
>>>>>
>>>>> before calling
>>>>>
>>>>> ((BindingProvider)*this*.workListService
>>>>> ).getRequestContext().put(SecurityConstants.*USERNAME*, "Alice");
>>>>>
>>>>> Right ?
>>>>>
>>>>>
>>>>> With the JaxWSClient,  I've tried to use
>>>>>
>>>>>
>>>>> ((BindingProvider)utPort).getRequestContext().put(SecurityConstants.USERNAME,
>>>>> "Alice");
>>>>>
>>>>> and it didn't had any effect... (I was making subsequent call, and
>>>>> changing the username)
>>>>>
>>>>> The web service response was the same for the two user, while one
>>>>> should have replied an empty response.
>>>>>
>>>>> *    try
>>>>> *    {
>>>>>       ((BindingProvider)*this*.workListService
>>>>> ).getRequestContext().put(SecurityConstants.*USERNAME*, username);
>>>>>
>>>>>       getWorkListItemsResponse = *this*.workListService
>>>>> .getWorkListItems(getWorkListItems);
>>>>>     }
>>>>>     *catch*(Exception e)
>>>>>     {
>>>>>       *logger*.error("Error while getting worklistItems for "
>>>>> +workListItemQuery.toString());
>>>>>     }
>>>>>
>>>>> Did I miss somehting ?
>>>>>
>>>>>
>>>>>
>>>>> One other thing I did understand in the meantime, is that, by using
>>>>>
>>>>>     JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>>>>>     factory.setServiceClass(WorkListService.class);
>>>>>     factory.setAddress(this.endpoint);
>>>>>     //
>>>>> factory.setWsdlLocation("D:/ARTIC/SOURCE/artic/trunk/webapp/src/main/webapp/WSDL/brm.wsdl");
>>>>>     factory.setServiceName(new QName("http://services.brm.n2.tibco.com
>>>>> ", "WorkListService"));
>>>>>
>>>>> Or
>>>>>
>>>>>     SpringBusFactory bf = new SpringBusFactory();
>>>>>     URL busFile = WorkListServiceImpl2.class.getResource("client.xml"
>>>>> );
>>>>>
>>>>>      Bus bus = bf.createBus(busFile.toString());
>>>>>     SpringBusFactory.setDefaultBus(bus);
>>>>>     SpringBusFactory.setThreadDefaultBus(bus);
>>>>>
>>>>>     URL wsdl = WorkListServiceImpl2.class.getResource(
>>>>> "/Users/tmanson/Dropbox/crf/AMXBPM-2.1-WS-Client/src/main/resources/brm.wsdl"
>>>>> );
>>>>>     Service service = Service.create(wsdl, new QName("
>>>>> http://api.brm.n2.tibco.com";, "WorkListService"));
>>>>>     QName portQName = new QName("http://services.brm.n2.tibco.com";,
>>>>> "WorkListService_EP");
>>>>>     this.workListService =
>>>>>             service.getPort(portQName, WorkListService.class);
>>>>>
>>>>> etc...
>>>>>
>>>>> we ask CXF to generate on the fly the WS Client, is it correct?
>>>>>
>>>>>
>>>>> Now I've already generated a client (with CXF/Ant), which I want to
>>>>> invoke instead with this code  :
>>>>>
>>>>> WorkListService_Service proxy = *new* WorkListService_Service(*new*URL(
>>>>> "http://localhost:8080/amxbpm-web/wsdl/brm.wsdl";),
>>>>>         *new* QName("http://services.brm.n2.tibco.com";,
>>>>> "WorkListService"));
>>>>> *this*.workListService = proxy.getPort( *new* QName("
>>>>> http://services.brm.n2.tibco.com";, "WorkListService_EP"),
>>>>> WorkListService.*class*);
>>>>>
>>>>>  I wonder how it can be used in conjonction with this code, and How
>>>>> should I handle the authentication part...:
>>>>>
>>>>> SpringBusFactory bf = *new* SpringBusFactory();
>>>>> URL busFile = WorkListServiceImpl2.*class*.getResource("client.xml");
>>>>> Bus bus = bf.createBus(busFile.toString());
>>>>> SpringBusFactory.*setDefaultBus*(bus);
>>>>> SpringBusFactory.*setThreadDefaultBus*(bus);
>>>>>
>>>>>
>>>>> I still dont get what file should I put instead of client.xml as I'm
>>>>> already in a spring context, should I specify the file where I define my
>>>>> bean already ?
>>>>> it's quite confusing...
>>>>>
>>>>>
>>>>> Thomas.
>>>>>
>>>>>
>>>>> On Wed, Sep 25, 2013 at 3:36 PM, Colm O hEigeartaigh <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> > Is it thread safe ?
>>>>>>
>>>>>> http://cxf.apache.org/faq.html#FAQ-AreJAXWSclientproxiesthreadsafe%3F
>>>>>>
>>>>>> All you need is a JAX-WS client proxy, how you obtain one or set up
>>>>>> your
>>>>>> project is up to you...
>>>>>>
>>>>>> Colm.
>>>>>>
>>>>>>
>>>>>> On Tue, Sep 24, 2013 at 2:07 PM, Thomas Manson
>>>>>> <[email protected]>wrote:
>>>>>>
>>>>>> > Hi Colm,
>>>>>> >
>>>>>> >   I'm starting to understand that it's another way to configure the
>>>>>> client.
>>>>>> >
>>>>>> >   I've two questions :
>>>>>> >
>>>>>> >    - Is it thread safe ?
>>>>>> >    I guess that it is as I see that the ServiceBus specify a Thread.
>>>>>> >    In a J2EE context, should I specify something else than
>>>>>> >    SpringBusFactory.setThreadDefaultBus(bus); ?
>>>>>> >
>>>>>> >
>>>>>> >    - I'm a bit puzzled by the configuration:
>>>>>> >
>>>>>> >
>>>>>> > SpringBusFactory bf = new SpringBusFactory();
>>>>>> > URL busFile =
>>>>>> UsernameTokenTest.class.getResource("client/client.xml");
>>>>>> >
>>>>>> >
>>>>>> > This code load a Spring configuration file, while I already have
>>>>>> mine +
>>>>>> > the client.xml configuration has some cxf:bus definition (is it the
>>>>>> same
>>>>>> > thing ? SringBusFactory & cxf:bus ?).
>>>>>> >
>>>>>> >  So I wonder I can't just use this code in an existing spring
>>>>>> context, How
>>>>>> > should I transpose this within an existing spring context?
>>>>>> >
>>>>>> >
>>>>>> >  How I think it would work is :
>>>>>> >
>>>>>> >
>>>>>> >    - Use your way to setup SpringBus and the Client
>>>>>> >    - Have a Spring class X that has the WS Client as dependency
>>>>>> >    - X implement each method of the WS(+some additional business
>>>>>> logic)
>>>>>> >    and set the username dynamically <= I still don't know how to do
>>>>>> this...
>>>>>> >
>>>>>> >  Is it the correct way ?
>>>>>> >
>>>>>> > Thomas.
>>>>>> >
>>>>>> > Here is my current work in progress spring file
>>>>>> >
>>>>>> > <beans xmlns="http://www.springframework.org/schema/beans";
>>>>>> >
>>>>>> >   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:cxf="
>>>>>> > http://cxf.apache.org/core";
>>>>>> >   xsi:schemaLocation="
>>>>>> > http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
>>>>>> > http://www.springframework.org/schema/beans
>>>>>> > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd";>
>>>>>> >
>>>>>> >
>>>>>> >   <cxf:bus>
>>>>>> >     <cxf:features>
>>>>>> >        <cxf:logging />
>>>>>> >     </cxf:features>
>>>>>> >   </cxf:bus>
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > <!--
>>>>>> >
>>>>>> /Users/tmanson/Dropbox/crf/AMXBPM-2.1-WS-Client/src/main/resources/de.wsdl
>>>>>> > -->
>>>>>> >   <jaxws:client
>>>>>> >             name="{http://services.brm.n2.tibco.com
>>>>>> }EntityResolverService"
>>>>>> >
>>>>>> >
>>>>>> wsdlLocation="/Users/tmanson/Dropbox/crf/AMXBPM-2.1-WS-Client/src/main/resources/de.wsdl"
>>>>>> >     serviceClass="com.tibco.n2.de.services.EntityResolverService"
>>>>>> >          address="
>>>>>> http://192.168.2.202:8080/amxbpm/EntityResolverService";
>>>>>> >   createdFromAPI="true">
>>>>>> >     <jaxws:properties>
>>>>>> >       <entry key="ws-security.callback-handler"
>>>>>> >
>>>>>> >
>>>>>>  
>>>>>> value="com.mansonthomas.amxbpm.customwebapp.services.amxbpm.security.PasswordCallbackHandler"
>>>>>> > />
>>>>>> >     </jaxws:properties>
>>>>>> >   </jaxws:client>
>>>>>> >
>>>>>> > </beans>
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > On Tue, Sep 24, 2013 at 11:41 AM, Colm O hEigeartaigh <
>>>>>> [email protected]
>>>>>> > > wrote:
>>>>>> >
>>>>>> >> Look at the last test here:
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/ut/UsernameTokenTest.java?view=markup
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> ((BindingProvider)utPort).getRequestContext().put(SecurityConstants.USERNAME,
>>>>>> >> "Alice");
>>>>>> >>
>>>>>> >> Colm.
>>>>>> >>
>>>>>> >>
>>>>>> >> On Tue, Sep 24, 2013 at 10:33 AM, Thomas Manson
>>>>>> >> <[email protected]>wrote:
>>>>>> >>
>>>>>> >> > Hi Colm,
>>>>>> >> >
>>>>>> >> >   I'm back working on this subject (was on pause as I was
>>>>>> working for
>>>>>> >> other
>>>>>> >> > clients)
>>>>>> >> >
>>>>>> >> >   I've checked out the SVN repo you gave me, and I've looked
>>>>>> through the
>>>>>> >> > samples configurations (client.xml) and I can't find anything
>>>>>> >> appropriate.
>>>>>> >> >
>>>>>> >> >  In the UT (Username Token I guess), the username is always
>>>>>> provided in
>>>>>> >> the
>>>>>> >> > configuration file.
>>>>>> >> >  The saml/x509 configuration still refers to Alice.properties...
>>>>>> >> >
>>>>>> >> >
>>>>>> >> >   In my case, the username shouldn't appear in the configuration
>>>>>> files,
>>>>>> >> as
>>>>>> >> > I need to use the J2EE Principal as login, and call the
>>>>>> webservice to
>>>>>> >> > authenticate the user.
>>>>>> >> >
>>>>>> >> >   Could you point me to the right direction  ?
>>>>>> >> >
>>>>>> >> > Thomas.
>>>>>> >> >
>>>>>> >> >
>>>>>> >> >
>>>>>> >> >
>>>>>> >> >
>>>>>> >> > On Sat, Jul 13, 2013 at 1:45 AM, Thomas Manson
>>>>>> >> > <[email protected]>wrote:
>>>>>> >> >
>>>>>> >> > > Thanks, it will surely help a lot :)
>>>>>> >> > >
>>>>>> >> > > Thomas.
>>>>>> >> > >
>>>>>> >> > >
>>>>>> >> > > On Fri, Jul 12, 2013 at 6:05 PM, Colm O hEigeartaigh <
>>>>>> >> > [email protected]>wrote:
>>>>>> >> > >
>>>>>> >> > >> Please take a look at the tests here:
>>>>>> >> > >>
>>>>>> >> > >>
>>>>>> >> > >>
>>>>>> >> >
>>>>>> >>
>>>>>> http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/ws-security-examples/
>>>>>> >> > >>
>>>>>> >> > >> Colm.
>>>>>> >> > >>
>>>>>> >> > >>
>>>>>> >> > >> On Fri, Jul 12, 2013 at 4:22 PM, Thomas Manson
>>>>>> >> > >> <[email protected]>wrote:
>>>>>> >> > >>
>>>>>> >> > >> > Do you have any other pointer that this page :
>>>>>> >> > >> >
>>>>>> >> > >> > cxf.apache.org/docs/ws-securitypolicy.html
>>>>>> >> > >> >
>>>>>> >> > >> > it's way to short for me as documentation to build
>>>>>> something that
>>>>>> >> > work.
>>>>>> >> > >> > When I read the properties described, I feel there's a mix
>>>>>> between
>>>>>> >> > >> server
>>>>>> >> > >> > side properties (which I'm not interested as I'm just
>>>>>> implementing
>>>>>> >> a
>>>>>> >> > >> > client)... + it starts with extra properties... where are
>>>>>> the basic
>>>>>> >> > >> ones?
>>>>>> >> > >> >
>>>>>> >> > >> > what would help is a full example of the code of a client.
>>>>>> >> > >> >
>>>>>> >> > >> > I'm quite lost ;)
>>>>>> >> > >> >
>>>>>> >> > >> >
>>>>>> >> > >> >
>>>>>> >> > >> >
>>>>>> >> > >> > On Fri, Jul 12, 2013 at 5:09 PM, Colm O hEigeartaigh <
>>>>>> >> > >> [email protected]
>>>>>> >> > >> > >wrote:
>>>>>> >> > >> >
>>>>>> >> > >> > >
>>>>>> >> > >> > > If you follow the WS-SecurityPolicy approach then it will
>>>>>> work,
>>>>>> >> as
>>>>>> >> > >> all of
>>>>>> >> > >> > > the configuration is taken from the context rather than a
>>>>>> >> properties
>>>>>> >> > >> Map.
>>>>>> >> > >> > >
>>>>>> >> > >> > > Colm.
>>>>>> >> > >> > >
>>>>>> >> > >> > >
>>>>>> >> > >> > > On Fri, Jul 12, 2013 at 4:01 PM, Thomas Manson <
>>>>>> >> > >> > [email protected]
>>>>>> >> > >> > > > wrote:
>>>>>> >> > >> > >
>>>>>> >> > >> > >>  I already does what you say as follow, but it mean one
>>>>>> >> instance of
>>>>>> >> > >> the
>>>>>> >> > >> > >> client per user connected.
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >> I've search quite some time dans didn't find a way to set
>>>>>> >> something
>>>>>> >> > >> like
>>>>>> >> > >> > >> the password callback handler.
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>  JaxWsProxyFactoryBean factory = new
>>>>>> JaxWsProxyFactoryBean();
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     factory.setServiceClass(WorkListService.class);
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     factory.setAddress(this.endpoint);
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     //
>>>>>> >> > >> > >>
>>>>>> >> > >> >
>>>>>> >> > >>
>>>>>> >> >
>>>>>> >>
>>>>>> factory.setWsdlLocation("D:/ARTIC/SOURCE/artic/trunk/webapp/src/main/webapp/WSDL/brm.wsdl");
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     factory.setServiceName(new QName("
>>>>>> >> > >> http://services.brm.n2.tibco.com
>>>>>> >> > >> > ",
>>>>>> >> > >> > >> "WorkListService"));
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     WorkListService workListService = (WorkListService)
>>>>>> >> > >> > factory.create();
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>        Client client =
>>>>>> ClientProxy.getClient(workListService);
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     Map<String, Object> properties = new HashMap<String,
>>>>>> >> Object>();
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     properties.put(WSHandlerConstants.ACTION          ,
>>>>>> >> > >> > >> WSHandlerConstants.USERNAME_TOKEN);
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     properties.put(WSHandlerConstants.USER            ,
>>>>>> >> > >> this.username);
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     properties.put(WSHandlerConstants.PASSWORD_TYPE   ,
>>>>>> >> > WSConstants.
>>>>>> >> > >> > >> PW_TEXT);// "PasswordDigest"
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     properties.put(WSHandlerConstants.PW_CALLBACK_REF ,
>>>>>> >> > >> > newPasswordCallbackHandler(
>>>>>> >> > >> > >> this.username, password, "password"));
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>     client.getOutInterceptors().add(new
>>>>>> >> > >> > WSS4JOutInterceptor(properties));
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >> On Fri, Jul 12, 2013 at 4:36 PM, Colm O hEigeartaigh <
>>>>>> >> > >> > [email protected]
>>>>>> >> > >> > >> > wrote:
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>> ou could create a CXF interceptor that sets the
>>>>>> username on the
>>>>>> >> > fly,
>>>>>> >> > >> > >>> before the WSS4JOutInterceptor is called.
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >>
>>>>>> >> > >> > >
>>>>>> >> > >> > >
>>>>>> >> > >> > > --
>>>>>> >> > >> > > Colm O hEigeartaigh
>>>>>> >> > >> > >
>>>>>> >> > >> > > Talend Community Coder
>>>>>> >> > >> > > http://coders.talend.com
>>>>>> >> > >> > >
>>>>>> >> > >> >
>>>>>> >> > >>
>>>>>> >> > >>
>>>>>> >> > >>
>>>>>> >> > >> --
>>>>>> >> > >> Colm O hEigeartaigh
>>>>>> >> > >>
>>>>>> >> > >> Talend Community Coder
>>>>>> >> > >> http://coders.talend.com
>>>>>> >> > >>
>>>>>> >> > >
>>>>>> >> > >
>>>>>> >> >
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >> --
>>>>>> >> Colm O hEigeartaigh
>>>>>> >>
>>>>>> >> Talend Community Coder
>>>>>> >> http://coders.talend.com
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Colm O hEigeartaigh
>>>>>>
>>>>>> Talend Community Coder
>>>>>> http://coders.talend.com
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>>
>> --
>> Colm O hEigeartaigh
>>
>> Talend Community Coder
>> http://coders.talend.com
>>
>
>


-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to