1 46 47 package org.mr.kernel.security.authentication; 48 49 import org.apache.commons.logging.Log; 50 import org.apache.commons.logging.LogFactory; 51 52 import javax.security.auth.callback.*; 53 import java.io.IOException ; 54 55 64 public class MantaCallbackHandler implements CallbackHandler { 65 private String _username; 66 private String _password = ""; 67 private Log _logger; 68 69 73 public MantaCallbackHandler(String username, String password){ 74 _username = username; 75 if (password != null) 76 _password = password; 77 } 78 79 90 public void handle(Callback callbacks[]) throws IOException , UnsupportedCallbackException { 91 for (int i=0 ; i<callbacks.length ; i++) { 92 if (callbacks[i] instanceof NameCallback) { 93 NameCallback nameCallback = (NameCallback) callbacks[i]; 95 nameCallback.setName(_username); 96 } 97 else if (callbacks[i] instanceof PasswordCallback) { 98 PasswordCallback passwordCallback = (PasswordCallback) callbacks[i]; 100 passwordCallback.setPassword(_password.toCharArray()); 101 } 102 else { 103 if (getLogger().isErrorEnabled()) 104 getLogger().error("[handle] Callback handler not supported: " + callbacks[i]); 105 throw new UnsupportedCallbackException(callbacks[i], "Callback handler not supported"); 106 } 107 } 108 } 109 110 115 public Log getLogger(){ 116 if (_logger == null){ 117 _logger = LogFactory.getLog(getClass().getName()); 118 } 119 return _logger; 120 } 121 } 122 | Popular Tags |