Authentifizierung fuer Modul jdk.httpserver
ulrich
2021-06-02 6d44a4304440a7a0951d2ee5c4c8173716125e0f
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    * 
59    * @param nutzerId  die Kennung des Benutzers
60    * @param kennwort das Kennwort des Benutzers
61    * @return true, wenn die Angaben stimmen, false wenn nicht
62    */
63   public boolean isValid(String nutzerId, String kennwort);
64   
65   /**
66    * Pruefen, ob ein Benutzer eine Rolle hat
67    * 
68    * @param nutzerId die Kennung des Benutzers
69    * @param rollenId die Kennung der Rolle
70    * @return  true, wenn der Benutzer die Rolle hat, false wenn nicht
71    */
72   public boolean hasRole(String nutzerId, String rollenId);
73   
74   /**
75    * Den Namen dieses Realms ermitteln
76    * @return Name des Realms
77    */
78   public String getName();
79   
80 }