1 17 package org.apache.geronimo.jmxremoting; 18 19 import java.util.Arrays ; 20 import java.io.Serializable ; 21 import javax.security.auth.callback.Callback ; 22 import javax.security.auth.callback.CallbackHandler ; 23 import javax.security.auth.callback.NameCallback ; 24 import javax.security.auth.callback.PasswordCallback ; 25 import javax.security.auth.callback.UnsupportedCallbackException ; 26 27 32 public class Credentials implements CallbackHandler , Serializable { 33 private final String username; 34 private final char[] password; 35 36 public Credentials(String username, String password) { 37 this.username = username; 38 this.password = password == null ? null : password.toCharArray(); 39 } 40 41 public void handle(Callback [] callbacks) throws UnsupportedCallbackException { 42 for (int i = 0; i < callbacks.length; i++) { 43 Callback callback = callbacks[i]; 44 if (callback instanceof NameCallback ) { 45 NameCallback nc = (NameCallback ) callback; 46 nc.setName(username); 47 } else if (callback instanceof PasswordCallback ) { 48 PasswordCallback pc = (PasswordCallback ) callback; 49 pc.setPassword(password); 50 } else { 51 throw new UnsupportedCallbackException (callback); 52 } 53 } 54 } 55 56 public void clear() { 57 if(password != null) { 58 Arrays.fill(password, '\0'); 59 } 60 } 61 } 62 | Popular Tags |