1 19 20 package com.sslexplorer.activedirectory; 21 22 import java.io.IOException ; 23 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 import org.apache.commons.logging.Log; 31 import org.apache.commons.logging.LogFactory; 32 33 40 public class UserPasswordCallbackHandler implements CallbackHandler { 41 private static final Log log = LogFactory.getLog(UserPasswordCallbackHandler.class); 42 private String username; 43 private char[] password; 44 45 48 public void handle(Callback [] callbacks) throws IOException , UnsupportedCallbackException { 49 for (int i = 0; i < callbacks.length; i++) { 50 if (callbacks[i] instanceof NameCallback ) { 51 if (log.isDebugEnabled()) { 52 log.debug("Handling username callback"); 53 } 54 NameCallback cb = (NameCallback ) callbacks[i]; 55 cb.setName(username); 56 57 } else if (callbacks[i] instanceof PasswordCallback ) { 58 if (log.isDebugEnabled()) { 59 log.debug("Handling password callback"); 60 } 61 PasswordCallback cb = (PasswordCallback ) callbacks[i]; 62 cb.setPassword(password); 63 64 } else { 65 throw new UnsupportedCallbackException (callbacks[i]); 66 } 67 } 68 } 69 70 74 public void setUserId(String username) { 75 this.username = username; 76 } 77 78 82 public void setPassword(String password) { 83 this.password = password.toCharArray(); 84 } 85 } | Popular Tags |