/** * Copyright (C) 2011 Talend Inc. - www.talend.com */ package demo.secure_greeter.client; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.BindingProvider; import com.talend.examples.secure_greeter.SecureGreeterPortType; import com.talend.examples.secure_greeter.SecureGreeterService; public final class Client { private static final QName SERVICE_NAME = new QName("http://talend.com/examples/secure-greeter", "SecureGreeterService"); private static final QName UT_PORT_NAME = new QName("http://talend.com/examples/secure-greeter", "UTGreeterPort"); private static final QName SAML_PORT_NAME = new QName("http://talend.com/examples/secure-greeter", "SAMLGreeterPort"); URL wsdl; SecureGreeterPortType utGreeter; SecureGreeterPortType samlGreeter; public Client( SecureGreeterPortType utGreeter, SecureGreeterPortType samlGreeter ) throws Exception { this.utGreeter = utGreeter; this.samlGreeter = samlGreeter; doWork(); } public Client() throws Exception { this(new String[0]); } public Client(String args[]) throws Exception { if (args.length == 0) { wsdl = Client.class.getResource("/ws-secpol-wsdl/greeter.wsdl"); } getUTGreeter(); getSAMLGreeter(); doWork(); } public final void doWork() { System.out.println("Invoking greetMe using UsernameToken..."); System.out.println("server responded with: " + utGreeter.greetMe(System.getProperty("user.name"))); System.out.println(); System.out.println("Invoking greetMe using SAML..."); System.out.println("server responded with: " + samlGreeter.greetMe(System.getProperty("user.name"))); System.out.println(); } public SecureGreeterPortType getUTGreeter() { if (utGreeter == null) { SecureGreeterService service = new SecureGreeterService(wsdl, SERVICE_NAME); utGreeter = service.getPort(UT_PORT_NAME, SecureGreeterPortType.class); ((BindingProvider)utGreeter).getRequestContext() .put("security.username", "abcd"); ((BindingProvider)utGreeter).getRequestContext() .put("security.callback-handler", "com.talend.examples.secure_greeter.PasswordCallback"); ((BindingProvider)utGreeter).getRequestContext() .put("security.encryption.properties", "/ws-secpol-wsdl/service.properties"); } return utGreeter; } public SecureGreeterPortType getSAMLGreeter() { if (samlGreeter == null) { SecureGreeterService service = new SecureGreeterService(wsdl, SERVICE_NAME); samlGreeter = service.getPort(SAML_PORT_NAME, SecureGreeterPortType.class); ((BindingProvider)samlGreeter).getRequestContext() .put("security.signature.username", "alice"); ((BindingProvider)samlGreeter).getRequestContext() .put("security.encryption.username", "bob"); ((BindingProvider)samlGreeter).getRequestContext() .put("security.callback-handler", "com.talend.examples.secure_greeter.PasswordCallback"); ((BindingProvider)samlGreeter).getRequestContext() .put("security.saml-callback-handler", new SamlCallbackHandler()); ((BindingProvider)samlGreeter).getRequestContext() .put("security.encryption.properties", "/ws-secpol-wsdl/service.properties"); ((BindingProvider)samlGreeter).getRequestContext() .put("security.signature.properties", "/ws-secpol-wsdl/client.properties"); } return samlGreeter; } public static void main(String[] args) throws Exception { new Client(args); System.exit(0); } }