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

javax.security.enterprise.credential.UsernamePasswordCredential Maven / Gradle / Ivy

Go to download

Jakarta Security defines a standard for creating secure Jakarta EE applications in modern application paradigms. It defines an overarching (end-user targeted) Security API for Jakarta EE Applications.

There is a newer version: 4.0.0
Show newest version
/*
 * Copyright (c) 2015, 2018 Oracle and/or its affiliates. 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 javax.security.enterprise.credential;

/**
 * Represents the credentials typically used by standard caller name/password authentication.
 */
public class UsernamePasswordCredential extends AbstractClearableCredential {

    private final String caller;
    private final Password password;

    /**
     * Constructor.
     *
     * @param callerName The caller name
     * @param password The password, as a String
     */
    public UsernamePasswordCredential(String callerName, String password) {
        this.caller = callerName;
        this.password = new Password(password);
    }
    
    /**
     * Constructor.
     *
     * @param callerName The caller name
     * @param password The password
     */
    public UsernamePasswordCredential(String callerName, Password password) {
        this.caller = callerName;
        this.password = password;
    }

    /**
     * Determines the password.
     * @return The password.
     */
    public Password getPassword() {
        return password;
    }
    
    /**
     * Determines the password.
     * @return The password, as a String.
     */
    public String getPasswordAsString() {
        return String.valueOf(getPassword().getValue());
    }

    @Override
    public void clearCredential() {
        password.clear();
    }

    public String getCaller() {
        return caller;
    }
    
    public boolean compareTo(String callerName, String password) {
        return getCaller().equals(callerName) && getPassword().compareTo(password);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy