package net.rubyeye.xmemcached.auth; import java.io.IOException; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.NameCallback; import javax.security.auth.callback.PasswordCallback; import javax.security.auth.callback.UnsupportedCallbackException; /** * A callback handler for name/password authentication * * @author dennis * */ public class PlainCallbackHandler implements CallbackHandler { private String username; private String password; public PlainCallbackHandler(String username, String password) { super(); this.username = username; this.password = password; } public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { for (Callback callback : callbacks) { if (callback instanceof NameCallback) { ((NameCallback) callback).setName(this.username); } else if (callback instanceof PasswordCallback) { ((PasswordCallback) callback).setPassword(password .toCharArray()); } else throw new UnsupportedCallbackException(callback); } } }