src/de/uhilger/httpserver/oauth/BearerAuthenticator.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/httpserver/oauth/BearerLoginHandler.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/httpserver/oauth/BearerRefreshHandler.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/httpserver/oauth/LoginResponse.java | ●●●●● patch | view | raw | blame | history |
src/de/uhilger/httpserver/oauth/BearerAuthenticator.java
@@ -345,34 +345,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; } src/de/uhilger/httpserver/oauth/BearerLoginHandler.java
@@ -77,6 +77,12 @@ "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA" } */ /** * Login-Anfragen ausfuehren * * @param exchange das Objekt mit Informationen zu HTTP-Anfrage und -Antwort * @throws IOException */ @Override public void handle(HttpExchange exchange) throws IOException { HttpContext context = exchange.getHttpContext(); @@ -92,6 +98,12 @@ } } /** * Die Antwort des Authenticators auf eine Login-Anfrage verarbeiten * @param exchange das Objekt mit Informationen zu HTTP-Anfrage und -Antwort * @param response die Antwort des Autehnticators * @throws IOException */ protected void handleLoginResponse(HttpExchange exchange, LoginResponse response) throws IOException { if(response != null) { setLoginHeader(exchange); src/de/uhilger/httpserver/oauth/BearerRefreshHandler.java
@@ -43,6 +43,12 @@ */ public class BearerRefreshHandler extends BearerLoginHandler { /** * Refresh-Anfrage ausfuehren * * @param exchange das Objekt mit Informationen zu HTTP-Anfrage und -Antwort * @throws IOException */ @Override public void handle(HttpExchange exchange) throws IOException { HttpHelper h = new HttpHelper(); src/de/uhilger/httpserver/oauth/LoginResponse.java
@@ -46,35 +46,69 @@ private long expires_in; private String refresh_token; /** * Den Token ermitteln * @return der Token */ public String getToken() { return access_token; } /** * Den Token eintragen * @param token der Token */ public void setToken(String token) { this.access_token = token; } /** * Den Refresh-Token ermitteln * @return der Refreh-Token */ public String getRefreshToken() { return refresh_token; } /** * Den Refresh-Token eintragen * @param refreshToken der Refresh Token */ public void setRefreshToken(String refreshToken) { this.refresh_token = refreshToken; } /** * Den Token-Typ bestimmen * @return der Token-Typ */ public String getTokenType() { return token_type; } /** * Die Anzahl der Sekunden ermitteln, nach denen der * Token ungueltig wird * @return die Anzahl Sekunden bis der Token ungueltg wird */ public long getExpiresIn() { return expires_in; } /** * Die Anzahl der Sekunden setzen, nach denen der * Token ungueltig wird * * @param seconds die Anzahl Sekunden bis der Token ungueltg wird */ public void setExpiresIn(long seconds) { this.expires_in = seconds; } /** * Dieses Objekt nach JSON uebersetzen * @return das Objekt in JSON */ public String toJson() { Gson gson = new Gson(); return gson.toJson(this);