1 package org.metricshub.winrm.service.client.auth;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import java.io.IOException;
24 import javax.security.auth.callback.Callback;
25 import javax.security.auth.callback.CallbackHandler;
26 import javax.security.auth.callback.NameCallback;
27 import javax.security.auth.callback.PasswordCallback;
28 import javax.security.auth.callback.UnsupportedCallbackException;
29
30 public class UsernamePasswordCallbackHandler implements CallbackHandler {
31
32 private final String username;
33 private final char[] password;
34
35
36
37
38
39
40
41 public UsernamePasswordCallbackHandler(final String username, final char[] password) {
42 this.username = username;
43 this.password = password;
44 }
45
46 @Override
47 public void handle(final Callback[] callbacks) throws IOException, UnsupportedCallbackException {
48 if (callbacks == null) {
49 return;
50 }
51
52 for (final Callback callback : callbacks) {
53 if (callback instanceof NameCallback) {
54 final NameCallback nameCallback = (NameCallback) callback;
55 nameCallback.setName(username);
56 } else if (callback instanceof PasswordCallback) {
57 final PasswordCallback passwordCallback = (PasswordCallback) callback;
58 passwordCallback.setPassword(password);
59 } else {
60 throw new UnsupportedCallbackException(callback, "Unknown Callback");
61 }
62 }
63 }
64 }