Authentifizierung fuer Modul jdk.httpserver
ulrich
2021-06-03 fc54b843e4c5736bf416b900db79ea1440cbee96
commit | author | age
9ee357 1 /*
U 2   jwtTest - JSON Web Token Testimplementierung 
3   Copyright (C) 2021  Ulrich Hilger
4
5   This program is free software: you can redistribute it and/or modify
6   it under the terms of the GNU Affero General Public License as
7   published by the Free Software Foundation, either version 3 of the
8   License, or (at your option) any later version.
9
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU Affero General Public License for more details.
14
15   You should have received a copy of the GNU Affero General Public License
16   along with this program.  If not, see <https://www.gnu.org/licenses/>.
17  */
18 package de.uhilger.httpserver.auth.realm;
19
20 /**
21  * A Realm is a "database" of usernames and passwords that identify valid 
22  * users of an application (or a set of applications), plus an enumeration 
23  * of the list of roles associated with each valid user. 
24  * 
25  * You can think of roles as similar to groups in Unix-like operating systems, 
26  * because access to specific web application resources is granted to all 
27  * users possessing a particular role (rather than enumerating the list of 
28  * associated usernames). A particular user can have any number of roles 
29  * associated with their username.
30  * 
31  * 
32  * 
33  * 
34  * Die Klasse Realm liefert Angaben zu Benutzern, die zu deren 
35  * Authentifizierung benoetigt werden.
36  * 
37  * Ein Benutzer Authentisiert sich gegenueber einem System z.B. mit 
38  * seiner Benutzerkennung und einem Kennwort. 
39  * 
40  * Das System vergleicht die Authentisierungsangaben den Benutzers mit 
41  * Angaben, die fuer diesen Benutzer im System hinterlegt wurden. Stimmen die 
42  * Angaben ueberein, gibt das System eine Bestaetigung aus, die den Benutzer 
43  * authentifiziert. 
44  * 
45  * Diese Authentifizierungsbestaetigung dient zur Ausfuehrung 
46  * von Transaktionen, die nur von bestimmten Benutzern durchgefuehrt 
47  * werden duerfen. Anhand der Authentifizierungsbestaetigung kann das System 
48  * bei jeder Anfrage pruefen, ob der Benutzer, von dem die Anfrage kommt, der 
49  * Benutzer ist, der er vorgibt zu sein.
50  * 
51  * @author Ulrich Hilger
52  * @version 1, 22.05.2021
53  */
54 public interface Realm {
55   
56   /**
57    * Uberpruefen, ob die Benutzerkennung und das Kennwort gueltig sind.
58    * 
696a4b 59    * @param user  der Benutzer
9ee357 60    * @param kennwort das Kennwort des Benutzers
U 61    * @return true, wenn die Angaben stimmen, false wenn nicht
62    */
696a4b 63   public boolean isValid(String userId, String kennwort);
9ee357 64   
U 65   /**
66    * Pruefen, ob ein Benutzer eine Rolle hat
67    * 
696a4b 68    * @param user der Benutzer
U 69    * @param roleId die Kennung der Rolle
9ee357 70    * @return  true, wenn der Benutzer die Rolle hat, false wenn nicht
U 71    */
696a4b 72   public boolean hasRole(String userId, String roleId);
9ee357 73   
U 74   /**
75    * Den Namen dieses Realms ermitteln
76    * @return Name des Realms
77    */
78   public String getName();
79   
80 }