01 package WSSE.token;
02
03 import java.util.ArrayList;
04 import java.util.List;
05 import javax.xml.namespace.QName;
06 import javax.xml.rpc.handler.HandlerInfo;
07 import javax.xml.rpc.handler.HandlerRegistry;
08 import weblogic.jws.proxies.*;
09 //import weblogic.jws.proxies.WebServiceB;
10 //import weblogic.jws.proxies.WebServiceB_Impl;
11 //import weblogic.jws.proxies.WebServiceBSoap;
12 import weblogic.webservice.context.WebServiceContext;
13 import weblogic.webservice.context.WebServiceSession;
14 import weblogic.webservice.core.handler.WSSEClientHandler;
15 import weblogic.xml.security.UserInfo;
16 import weblogic.xml.security.wsse.Security;
17 import weblogic.xml.security.wsse.SecurityElementFactory;
18
19 public class WebServiceBClient
20 {
21
22 public static void main(String[] args){
23
24 try{
25 /*
26 * Instantiate the main proxy class. The proxy class has the same name as the
27 * web service, with "_Impl" appended.
28 */
29 WebServiceB myservice = new WebServiceB_Impl("http://localhost:7001/WebServices/security/wsse/usertoken/webServiceB/WebServiceB.wsdl");
30
31 WebServiceContext context = myservice.context();
32 WebServiceSession session = context.getSession();
33
34 /**
35 * Registers a handler for the SOAP message traffic.
36 */
37 HandlerRegistry registry = myservice.getHandlerRegistry();
38 List list = new ArrayList();
39 list.add(new HandlerInfo(WSSEClientHandler.class, null, null));
40 registry.setHandlerChain(new QName("hello"), list);
41
42 /**
43 * Set the username and password token for SOAP message sent from the client, through
44 * the proxy, to the web service.
45 */
46 UserInfo ui = new UserInfo("weblogic", "weblogic");
47 session.setAttribute(WSSEClientHandler.REQUEST_USERINFO, ui);
48
49 /**
50 * Adds the username / password token to the SOAP header.
51 */
52 SecurityElementFactory factory = SecurityElementFactory.getDefaultFactory();
53 Security security = factory.createSecurity(null);
54 security.addToken(ui);
55 session.setAttribute(WSSEClientHandler.REQUEST_SECURITY, security);
56
57 /*
58 * Get the protocol-specific proxy class.
59 */
60 WebServiceBSoap msg=myservice.getWebServiceBSoap();
61
62 /**
63 * Invoke the web service method hello()
64 */
65 String result=msg.hello();
66
67 System.out.println();
68 System.out.println("Web Service Response:");
69 System.out.println(result);
70 }
71 catch(Exception e){
72 e.printStackTrace();
73 }
74 }
75
76 }
|