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

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

/*
 * Copyright (c) 1997, 2020 Oracle and/or its affiliates and others.
 * All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package jakarta.security.auth.message.callback;

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

/**
 * 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. * */ public class PasswordValidationCallback implements Callback { private Subject subject; private String username; private char[] password; private boolean result; /** * 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.subject = subject; this.username = username; if (password != null) { this.password = password.clone(); } } /** * Get the subject. * * @return The subject. */ public Subject getSubject() { return subject; } /** * Get the username. * * @return The username. */ public String getUsername() { return username; } /** * 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 password; } /** * Clear the password. */ public void clearPassword() { if (password != null) { Arrays.fill(password, ' '); } } /** * Set the authentication result. * * @param result True if authentication succeeded, false otherwise */ public void setResult(boolean result) { this.result = result; } /** * Get the authentication result. * * @return True if authentication succeeded, false otherwise */ public boolean getResult() { return result; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy