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