package de.codedo.jaas; 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; public class UsernamePasswordCallbackHandler extends Object implements CallbackHandler { private String _user; private String _password; public UsernamePasswordCallbackHandler(String user, String password) { super(); _user = user; _password = password; } @Override public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { for (Callback callback : callbacks) { if (callback instanceof NameCallback) { handleName((NameCallback)callback); } else if (callback instanceof PasswordCallback) { handlePassword((PasswordCallback)callback); } else { throw new UnsupportedCallbackException(callback); } } } private void handleName(NameCallback callback) { callback.setName(_user); } private void handlePassword(PasswordCallback callback) { char[] passwordChars = _password.toCharArray(); callback.setPassword(passwordChars); } }