/
githubmirror
/
galahad
Обзор
Документация
Войти
/
githubmirror
/
galahad
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpPrincipal.java
119 строк
4 KB
Darragh Clarke
8310997: missing @since tags in jdk.httpserver
04 июл 2023, 15:19
04 июл 2023, 15:19
607ddaa
Код
Авторство
О чём код?
/* * Copyright (c) 2006, 2023, 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. * * @since 1.6 */ public class HttpPrincipal implements Principal { private String username, realm; /** * 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 {@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 * <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 {@code username} this object was created with. * * @return the name of the user associated with this object */ public String getUsername() { return username; } /** * 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 {@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 {@link #getName()}. * * @return the name associated with this object */ public String toString() { return getName(); } }