1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.gridsystems.innergrid.api;
18
19 import java.io.IOException;
20 import java.util.ResourceBundle;
21
22 import org.apache.ws.security.WSPasswordCallback;
23
24 import javax.security.auth.callback.Callback;
25 import javax.security.auth.callback.CallbackHandler;
26 import javax.security.auth.callback.UnsupportedCallbackException;
27
28
29
30
31
32 public class PWCallback implements CallbackHandler {
33
34
35
36 private static String password = readPassword();
37
38
39
40
41
42 private static String readPassword() {
43 try {
44 ResourceBundle props = ResourceBundle.getBundle("crypto");
45 return props.getString("org.apache.ws.security.crypto.merlin.alias.password");
46 } catch (Exception ex) {
47 throw new RuntimeException(ex);
48 }
49 }
50
51
52
53
54
55 public void handle(Callback[] callbacks) throws IOException,
56 UnsupportedCallbackException {
57
58
59
60
61 for (int i = 0; i < callbacks.length; i++) {
62 if (callbacks[i] instanceof WSPasswordCallback) {
63 WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
64 pc.setPassword(password);
65 } else {
66 throw new UnsupportedCallbackException(callbacks[i], "Unrecognized Callback");
67 }
68 }
69 }
70 }