All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.security.auth.message.callback.PasswordValidationCallback Maven / Gradle / Ivy

There is a newer version: 1.0.13
Show newest version
/**
 * EasyBeans
 * Copyright (C) 2010 Bull S.A.S.
 * Contact: [email protected]
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
 * USA
 *
 * --------------------------------------------------------------------------
 * $Id: PasswordValidationCallback.java 6201 2012-03-21 10:28:10Z benoitf $
 * --------------------------------------------------------------------------
 */
package javax.security.auth.message.callback;

import java.util.Arrays;
import javax.security.auth.Subject;

/**
 * Callback for PasswordValidation.
 * This callback may be used by an authentication module
 * to employ the password validation facilities of its containing runtime.
 * This Callback would typically be called by a ServerAuthModule
 * during validateRequest processing.
 *
 * @version 1.0
 */
public class PasswordValidationCallback implements javax.security.auth.callback.Callback {
    private static final long serialVersionUID = -135437753287939796L;

    /**
     * The subject to authenticate, read by the callback handler.
     */
    private Subject theSubject;

    /**
     * The username to authenticate, read by the callback handler.
     */
    private String theUsername;

    /**
     * The password to use for authentication, read by the callback handler.
     */
    private char[] thePassword;

    /**
     * The authentication result, SET by the callback handler.
     */
    private boolean theResult;


    /**
     * Create a PasswordValidationCallback.
     *
     * @param subject The subject for authentication
     *
     * @param username The username to authenticate
     *
     * @param password The user's password, which may be null.
     */
    public PasswordValidationCallback(Subject subject, String username,
            char[] password) {
        this.theSubject = subject;
        this.theUsername = username;
        if (password != null) {
            this.thePassword = (char[]) password.clone();
        }
    }

    /**
     * Get the subject.
     *
     * @return The subject.
     */
    public Subject getSubject() {
        return this.theSubject;
    }

    /**
     * Get the username.
     *
     * @return The username.
     */
    public String getUsername() {
	return this.theUsername;
    }

    /**
     * Get the password.
     *
     * 

* * Note that this method returns a reference to the password. * If a clone of the array is created it is the caller's * responsibility to zero out the password information after * it is no longer needed. * * @return The password, which may be null. */ public char[] getPassword() { return this.thePassword; } /** * Clear the password. */ public void clearPassword() { if (this.thePassword != null) { Arrays.fill(this.thePassword, ' '); } } /** * Set the authentication result. * * @param result True if authentication succeeded, false otherwise */ public void setResult(boolean result) { this.theResult = result; } /** * Get the authentication result. * * @return True if authentication succeeded, false otherwise */ public boolean getResult() { return this.theResult; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy