import org.apache.ws.security.WSPasswordCallback;

import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.UnsupportedCallbackException;
import java.io.IOException;

public class PasswordCallback implements CallbackHandler
{
	private String user = null;
	private String pass = null;

	public PasswordCallback(String user, String pass)
	{
		setUser(user);
		setPass(pass);
	}

	public void setUser(String user) { this.user = user; }
	public void setPass(String pass) { this.pass = pass; }

    public void handle(Callback[] callbacks) throws IOException,
			UnsupportedCallbackException
	{
		for (int i = 0; i < callbacks.length; i++) {
			if (callbacks[i] instanceof WSPasswordCallback) {
				WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
                // set the password given a username
                if (user.equals(pc.getIdentifer())) {
					pc.setPassword(pass);
				}
            } else {
				throw new UnsupportedCallbackException(callbacks[i], "Unrecognized Callback");
            }
        }
    }
}