/*
 * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code 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 General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package com.sun.net.httpserver;
import java.security.Principal;

Represents a user authenticated by HTTP Basic or Digest authentication.
/** * Represents a user authenticated by HTTP Basic or Digest * authentication. */
public class HttpPrincipal implements Principal { private String username, realm;
Creates a HttpPrincipal from the given username and realm.
Params:
  • username – the name of the user within the realm
  • realm – the realm for this user
Throws:
/** * Creates a {@code HttpPrincipal} from the given {@code username} and * {@code realm}. * * @param username the name of the user within the realm * @param realm the realm for this user * @throws NullPointerException if either username or realm are {@code null} */
public HttpPrincipal(String username, String realm) { if (username == null || realm == null) { throw new NullPointerException(); } this.username = username; this.realm = realm; }
Compare two instances of HttpPrincipal. Returns true if another is an instance of HttpPrincipal, and its username and realm are equal to this object's username and realm. Returns false otherwise.
Params:
  • another – the object to compare this instance of HttpPrincipal against
Returns:true or false depending on whether objects are equal or not
/** * Compare two instances of {@code HttpPrincipal}. Returns {@code true} if * <i>another</i> is an instance of {@code HttpPrincipal}, and its username * and realm are equal to this object's username and realm. Returns {@code false} * otherwise. * * @param another the object to compare this instance of {@code HttpPrincipal} against * @return {@code true} or {@code false} depending on whether objects are * equal or not */
public boolean equals(Object another) { if (!(another instanceof HttpPrincipal)) { return false; } HttpPrincipal theother = (HttpPrincipal)another; return (username.equals(theother.username) && realm.equals(theother.realm)); }
Returns the contents of this principal in the form realm:username.
Returns:the contents of this principal in the form realm:username
/** * Returns the contents of this principal in the form * <i>realm:username</i>. * * @return the contents of this principal in the form realm:username */
public String getName() { return String.format("%s:%s", realm, username); }
Returns the username this object was created with.
Returns:the name of the user associated with this object
/** * Returns the {@code username} this object was created with. * * @return the name of the user associated with this object */
public String getUsername() { return username; }
Returns the realm this object was created with.
Returns:the realm associated with this object
/** * Returns the {@code realm} this object was created with. * * @return the realm associated with this object */
public String getRealm() { return realm; }
Returns a hashcode for this HttpPrincipal. This is calculated as (getUsername()+getRealm()).hashCode().
Returns:the hashcode for this object
/** * Returns a hashcode for this {@code HttpPrincipal}. This is calculated * as {@code (getUsername()+getRealm()).hashCode()}. * * @return the hashcode for this object */
public int hashCode() { return (username+realm).hashCode(); }
Returns the same string as getName().
Returns:the name associated with this object
/** * Returns the same string as {@link #getName()}. * * @return the name associated with this object */
public String toString() { return getName(); } }