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
