@Test
public void testUsernameToken() throws Exception {
final javax.xml.ws.Service svc
= javax.xml.ws.Service.create(WSDL_LOC, GREETER_SERVICE_QNAME);
final Greeter greeter = svc.getPort(USERNAME_TOKEN_PORT_QNAME, Greeter.class);
updateAddressPort(greeter, PORT);
Client client = ClientProxy.getClient(greeter);
Map<String, Object> props = new HashMap<String, Object>();
props.put("action", "UsernameToken");
props.put("user", "alice");
props.put("passwordType", "PasswordText");
WSS4JOutInterceptor wss4jOut = new WSS4JOutInterceptor(props);
client.getOutInterceptors().add(wss4jOut);
((BindingProvider)greeter).getRequestContext().put("password", "password");
try {
greeter.greetMe("CXF");
fail("should fail because of password text instead of digest");
} catch (Exception ex) {
//expected
}
props.put("passwordType", "PasswordDigest");
String s = greeter.greetMe("CXF");
assertEquals("Hello CXF", s);
try {
((BindingProvider)greeter).getRequestContext().put("password", "foo");
greeter.greetMe("CXF");
fail("should fail");
} catch (Exception ex) {
//expected
}
try {
props.put("passwordType", "PasswordText");
((BindingProvider)greeter).getRequestContext().put("password", "password");
greeter.greetMe("CXF");
fail("should fail");
} catch (Exception ex) {
//expected
}