1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.wss4j.dom.common;
21
22 import javax.security.auth.callback.Callback;
23 import javax.security.auth.callback.CallbackHandler;
24 import javax.security.auth.callback.UnsupportedCallbackException;
25
26 import org.apache.wss4j.common.ext.WSPasswordCallback;
27
28 import java.io.IOException;
29 import java.util.HashMap;
30 import java.util.Map;
31
32
33
34
35 public class UsernamePasswordCallbackHandler implements CallbackHandler {
36
37 private Map<String, String> users = new HashMap<>();
38
39 public UsernamePasswordCallbackHandler() {
40 users.put("wernerd", "verySecret");
41 users.put("bob", "security");
42 users.put("alice", "securityPassword");
43 }
44
45 public void handle(Callback[] callbacks)
46 throws IOException, UnsupportedCallbackException {
47 for (Callback callback : callbacks) {
48 if (callback instanceof WSPasswordCallback) {
49 WSPasswordCallback pc = (WSPasswordCallback) callback;
50 if (pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN) {
51 pc.setPassword(users.get(pc.getIdentifier()));
52 break;
53 }
54 } else {
55 throw new UnsupportedCallbackException(callback, "Unrecognized Callback");
56 }
57 }
58 }
59 }