From 8c1928946cb3b4f2d9ead70c7362ce1dbe045fa4 Mon Sep 17 00:00:00 2001 From: ulrich Date: Mon, 05 Jul 2021 10:53:23 +0000 Subject: [PATCH] Log-Eintraege fuer log in --- src/de/uhilger/httpserver/oauth/BearerAuthenticator.java | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 44 insertions(+), 3 deletions(-) diff --git a/src/de/uhilger/httpserver/oauth/BearerAuthenticator.java b/src/de/uhilger/httpserver/oauth/BearerAuthenticator.java index 5ec83be..ce231d9 100644 --- a/src/de/uhilger/httpserver/oauth/BearerAuthenticator.java +++ b/src/de/uhilger/httpserver/oauth/BearerAuthenticator.java @@ -132,8 +132,9 @@ * @param password das Kennwort des Benutzers * @return Token oder null, wenn die Anmeldung misslang */ - public LoginResponse login(String userId, String password) { + public LoginResponse login(HttpExchange e, String userId, String password) { if (realm.isValid(userId, password)) { + logger.info(userId + " logged in from IP." + e.getRemoteAddress()); LoginResponse r = new LoginResponse(); String token = createToken(userId, expireSeconds); r.setToken(token); @@ -141,6 +142,7 @@ r.setExpiresIn(expireSeconds); return r; } else { + logger.info("Invalid log in attempt for " + userId + " from IP " + e.getRemoteAddress()); return null; } } @@ -345,30 +347,69 @@ return new Authenticator.Retry(SC_UNAUTHORIZED); } + /** + * Den Realm dieses Authenticators setzen + * @param realm der Realm + */ public void setRealm(Realm realm) { this.realm = realm; } - public Realm getRealm() { - return realm; + /** + * Pruefen, ob ein Nutzer eine Rolle hat + * @param userId die Kennung des Nutzers + * @param roleId die Rollen-ID des Nutzers + * @return true, wenn der Nutzer die Rolle hat, false wenn nicht + */ + public boolean hasRole(String userId, String roleId) { + return realm.hasRole(userId, roleId); } + /** + * Den Eintrag fuer das 'realm'-Attribut + * zur Nutzung im WWW-Authenticate Header setzen + * + * @param wwwAuthRealm der Text fuer das realm-Attribut im + * WWW-Autehnticate-Header + */ public void setWWWAuthRealm(String wwwAuthRealm) { this.wwwAuthRealm = wwwAuthRealm; } + /** + * Den Namen des Realms setzen, wie er fuer authentifizierte Benutzer + * vom Principal ausgegeben werden soll + * + * @param principalAuthRealm der Name des Realms fuer authentifizierte + * Benutzer + */ public void setPrincipalAuthRealm(String principalAuthRealm) { this.principalAuthRealm = principalAuthRealm; } + /** + * Die Dauer der Gueltigkeit einer Authentifizierung in Sekunden + * @param seconds die Sekunden, nach denen die Authentifizierung + * ungueltig wird + */ public void setExpireSeconds(long seconds) { this.expireSeconds = seconds; } + /** + * Die Dauer bis eine Authentifizierung eine Erneuerung benoetigt in Sekunden + * @param seconds die Sekunden, nach denen die Authentifizierung + * eine Erneuerung benoetigt + */ public void setRefreshSeconds(long seconds) { this.refreshSeconds = seconds; } + /** + * Die Dauer der Gueltigkeit eines Refresh-Token in Sekunden + * + * @param seconds die Anzhal Sekunden, die ein Refresh-Token gueltig ist + */ public void setRefreshExpireSeconds(long seconds) { this.refreshExpire = seconds; } -- Gitblit v1.9.3