b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster/**
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * The contents of this file are subject to the terms
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * of the Common Development and Distribution License
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * (the License). You may not use this file except in
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * compliance with the License.
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * You can obtain a copy of the License at
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * opensso/legal/CDDLv1.0.txt
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * See the License for the specific language governing
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * permission and limitations under the License.
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * When distributing Covered Code, include this CDDL
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * Header Notice in each file and include the License file
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * at opensso/legal/CDDLv1.0.txt.
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * If applicable, add the following below the CDDL Header,
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * with the fields enclosed by brackets [] replaced by
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * your own identifying information:
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * $Id: AccessAccept.java,v 1.2 2008/06/25 05:42:00 qcheng Exp $
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster/*
a4544a5a0e622ef69e38641f87ab1b5685e05911Phill Cunnington * Portions Copyrighted 2011-2015 ForgeRock AS.
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * Portions Copyrighted [2015] [Intellectual Reserve, Inc (IRI)]
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Fosterpackage com.sun.identity.authentication.modules.radius;
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Fosterimport java.security.Principal;
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen/**
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * The {@link java.security.Principal} contributed by the {@link com.sun.identity.authentication.modules.radius.RADIUS}
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * authentication module upon successful authentication of the user.
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Fosterpublic class RADIUSPrincipal implements Principal, java.io.Serializable {
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster /**
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * The name value.
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * @serial
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster private String name;
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen /**
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * Contruct a new instance.
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen *
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * @param name the name of the principal
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster public RADIUSPrincipal(String name) {
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen if (name == null) {
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen throw new NullPointerException("illegal null input");
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen }
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen this.name = name;
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster }
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster /**
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * Return the RADIUS username for this <code>RADIUSPrincipal</code>.
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * <p/>
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * <p/>
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * @return the RADIUS username for this <code>RADIUSPrincipal</code>
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster public String getName() {
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen return name;
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster }
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster /**
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * Return a string representation of this <code>RADIUSPrincipal</code>.
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * <p/>
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * <p/>
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * @return a string representation of this <code>RADIUSPrincipal</code>.
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster public String toString() {
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen return ("RADIUSPrincipal: " + name);
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster }
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster /**
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * Compares the specified Object with this <code>RADIUSPrincipal</code> for equality. Returns true if the given
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * object is also a <code>RADIUSPrincipal</code> and the two RADIUSPrincipals have the same username.
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * <p/>
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * <p/>
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * @param o Object to be compared for equality with this <code>RADIUSPrincipal</code>.
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * @return true if the specified Object is equal equal to this <code>RADIUSPrincipal</code>.
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster public boolean equals(Object o) {
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen if (o == null) {
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen return false;
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen }
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen if (this == o) {
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster return true;
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen }
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen if (!(o instanceof RADIUSPrincipal)) {
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster return false;
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen }
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen RADIUSPrincipal that = (RADIUSPrincipal) o;
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen if (this.getName().equals(that.getName())) {
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen return true;
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen }
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen return false;
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster }
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster /**
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * Return a hash code for this <code>RADIUSPrincipal</code>.
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * <p/>
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen * <p/>
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster *
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster * @return a hash code for this <code>RADIUSPrincipal</code>.
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster */
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster public int hashCode() {
5c124de5c36bfc236d55578429df5f048f0d0a07Jamie Bowen return name.hashCode();
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster }
b67fa9bf4094b26e52521e7289a660e09bfa6e25Allan Foster}