View Javadoc

1   /**
2    * Originally contributed by eMation (www.emation.pt)
3    */
4   package org.itracker.services.authentication.adsson;
5   
6   import javax.security.auth.callback.Callback;
7   import javax.security.auth.callback.CallbackHandler;
8   import javax.security.auth.callback.NameCallback;
9   import javax.security.auth.callback.PasswordCallback;
10  import javax.security.auth.callback.UnsupportedCallbackException;
11  
12  /**
13   * Callback class for Active Directory authentication Gets username and password
14   * from class constructor
15   * 
16   * @author ricardo
17   * 
18   */
19  public class SimpleCallbackHandler implements CallbackHandler {
20  
21      private String username;
22  
23      private String password;
24  
25      public SimpleCallbackHandler(String username, String password) {
26          super();
27          this.username = username;
28          this.password = password;
29      }
30  
31      public void handle(Callback[] callbacks) throws java.io.IOException, UnsupportedCallbackException {
32  
33          for (int i = 0; i < callbacks.length; i++) {
34              if (callbacks[i] instanceof NameCallback) {
35                  NameCallback cb = (NameCallback) callbacks[i];
36                  cb.setName(username);
37              } else if (callbacks[i] instanceof PasswordCallback) {
38                  PasswordCallback cb = (PasswordCallback) callbacks[i];
39                  cb.setPassword(password.toCharArray());
40              } else {
41                  throw new UnsupportedCallbackException(callbacks[i]);
42              }
43          }
44  
45      }
46  }