Package at.letto.login.restclient
Class RestLoginService
java.lang.Object
at.letto.service.rest.RestClient
at.letto.login.restclient.RestLoginService
- All Implemented Interfaces:
LoginService
,MicroService
-
Constructor Summary
ConstructorsConstructorDescriptionRestLoginService
(String baseURI) Erzeugt ein REST-Client Verbindung zu einem MicroserviceRestLoginService
(String baseURI, String user, String password) -
Method Summary
Modifier and TypeMethodDescriptionboolean
activateServerToken
(long tokenID) aktiviert einen bestehenden Token .Liefert Information über das Rest-ServicecreateMessage
(String sender, String receiver, String topic, Object message, long lifetimeSeconds, boolean single, String messageSecret) Generiert eine Nachricht an ein Service welche in der REDIS-Datenbank gespeichert wirdboolean
deactivateServerToken
(long tokenID) deaktiviert einen bestehenden Token durch eine Markierung .getAliasToken
(String token, String username) Liefert einen neuen Token um eine Alias-Rolle annehmen zu könnengetMessage
(String messageID) Lädt eine Nachricht aus der REDIS-Datenbank und löscht falls sie single ist sofortgetServerToken
(GetServerTokenRequest request) Erzeugt einen neuen Servertoken mit dem Login-Service entsprechend den Angaben im Request
Endpoint ist User-Authentificatet als User adminLiefert eine Liste aller Token die erzeugt wurden und noch gültig sindgetUserToken
(String serverTokenString, String userTokenFremd, String language, String backlink, boolean tempToken, String fingerprint, String ipaddress) Erzeugt einen neuen UserToken auf dem Remote-Server mit dem auf den Remotserver zugegriffen werden kanngetUserTokenDirect
(UserTokenRequestDto userTokenRequestDto) Erzeugt einen neuen UserToken auf dem Remote-Server mit dem auf den Remotserver zugegriffen werden kanninfo()
Liefert einen allgemeinen Informationsstring zu dem MicroservicejwtGetTempToken
(LettoToken lettoToken) Liefert aus einem gültigen Token einen Temptoken für einen neuen refreshten TokenjwtGetTempToken
(String token) Liefert aus einem gültigen Token einen Temptoken für einen neuen refreshten TokenjwtGetTempTokenUri
(LettoToken lettoToken) jwtGetTempTokenUri
(String token) jwtLettoLogin
(String username, String password, String school, String fingerprint, String ipaddress, String service, String infos, String userAgent) Prüft Benutzernamen und Passwort über das Loginservice und liefert einen LettoToken zurückjwtLogin
(String username, String password, String school, String fingerprint, String ipaddress, String service, String infos, String userAgent) Prüft Benutzernamen und Passwort über das Loginserviceboolean
Führt einen Logout des Tokens durch und vernichtet den Token im Token-Store - danach ist kein Token-Refresh dieses Tokens mehr möglich!jwtRefresh
(LettoToken lettoToken) Deprecated.jwtRefresh
(LettoToken lettoToken, String fingerprint) Aktualisiert einen gültigen TokenjwtRefresh
(String token) Deprecated.jwtRefresh
(String token, String fingerprint) Aktualisiert einen gültigen TokenjwtTokenFromTempToken
(String tempToken, String serverSecret) Liefert einen gültigen JWT-Token aus einem gültigen TempTokenjwtValidate
(String token, String fingerprint) Überprüft die Gültigkeit eines TokenslettoTokenFromTokenString
(String token) Liefert einen kompletten LettoToken aus einem Tokenstring wenn der Token gültig istloadServerToken
(long tokenID) Liefert wichtige Informationen zu einem gültigen ServerTokenboolean
Entfernt alle Tokens des Benutzers sodass kein Token-Refresh für diese Tokens mehr möglich ist!boolean
ping()
Schickt eine Ping an das Serviceboolean
boolean
pingStudent
(String token) boolean
pingTeacher
(String token) refreshServerToken
(String oldTokenString) aktualisiert eine bestehenden Servertokenboolean
removeServerToken
(long tokenID) deaktiviert einen bestehenden Token indem er von der Liste gelöscht wird.serverTokenInfo
(String serverTokenString) Liefert wichtige Informationen zu einem gültigen ServerTokenboolean
setPassword
(String username, String school, String oldPassword, String newPassword, boolean tempPassword) Setzt ein neues Benutzerpasswort eines Users an einer Schule und liefert ok wenn das Passwort gesetzt wurde ENDPOINT : LoginEndpoint.setpasswordboolean
tempLogin
(String username, String tempPassword, String school, String fingerprint, String ipaddress) Schickt Benutzername, Passwort und Schule an den Endpoint und liefert ok wenn das Passwort dem Temp-Passwort entspricht ENDPOINT : LoginEndpoint.temploginLiefert Information über den Tokenversion()
Liefert die Version des Microservices als StringMethods inherited from class at.letto.service.rest.RestClient
get, get, get, get, get, get, getDto, getHttpRestClient, getHttpRestClient, getHttpsRestClient, getHttpsRestClient, getRestClient, jsonTest, ping, ping, post, post, post, post, post, post, postDto, postDtoJson, postJson, rest, restGet, restGet, restPost, restPost
-
Constructor Details
-
RestLoginService
Erzeugt ein REST-Client Verbindung zu einem Microservice- Parameters:
baseURI
- Basis-URI des Microservices zb: https://localhost:9091
-
RestLoginService
-
-
Method Details
-
ping
public boolean ping()Description copied from interface:MicroService
Schickt eine Ping an das Service- Specified by:
ping
in interfaceMicroService
-
version
Description copied from interface:MicroService
Liefert die Version des Microservices als String- Specified by:
version
in interfaceMicroService
-
info
Description copied from interface:MicroService
Liefert einen allgemeinen Informationsstring zu dem Microservice- Specified by:
info
in interfaceMicroService
-
admininfo
Description copied from interface:MicroService
Liefert Information über das Rest-Service- Specified by:
admininfo
in interfaceMicroService
-
jwtLogin
public String jwtLogin(String username, String password, String school, String fingerprint, String ipaddress, String service, String infos, String userAgent) Description copied from interface:LoginService
Prüft Benutzernamen und Passwort über das Loginservice- Specified by:
jwtLogin
in interfaceLoginService
- Parameters:
username
- Benutzernamepassword
- Passwort unverschlüsseltschool
- Schulkennung welche auch in der URL verwendet wird (eindeutig am Server)fingerprint
- Fingerabdruck des Users (z.B. Fingerabdruck des Smartphones)ipaddress
- IP-Adresse des Usersservice
- Service welcher die Authentifizierung anfordert, z.B. "letto-login", "letto-edit", "letto-admin" etc.infos
- zusätzliche Informationen über den Client, wer, was, wo, warumuserAgent
- User-Agent des Clients, z.B. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"- Returns:
- gültiger token als String oder null
-
jwtLettoLogin
public TokenLoginResult jwtLettoLogin(String username, String password, String school, String fingerprint, String ipaddress, String service, String infos, String userAgent) Description copied from interface:LoginService
Prüft Benutzernamen und Passwort über das Loginservice und liefert einen LettoToken zurück- Specified by:
jwtLettoLogin
in interfaceLoginService
- Parameters:
username
- Benutzernamepassword
- Passwort unverschlüsseltschool
- Schulkennung welche auch in der URL verwendet wird (eindeutig am Server)fingerprint
- Fingerabdruck des Users (z.B. Fingerabdruck des Smartphones)ipaddress
- IP-Adresse des Usersservice
- Service welcher die Authentifizierung anfordert, z.B. "letto-login", "letto-edit", "letto-admin" etc.infos
- zusätzliche Informationen über den Client, wer, was, wo, warumuserAgent
- User-Agent des Clients, z.B. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"- Returns:
- gültiger LettoToken oder null
-
jwtRefresh
Deprecated.Description copied from interface:LoginService
Aktualisiert einen gültigen Token- Specified by:
jwtRefresh
in interfaceLoginService
- Parameters:
lettoToken
- Token der aktualisiert werden muss- Returns:
- gültiger LeTTo-Token oder null
-
jwtRefresh
Deprecated.Description copied from interface:LoginService
Aktualisiert einen gültigen Token- Specified by:
jwtRefresh
in interfaceLoginService
- Parameters:
token
- Token der aktualisiert werden muss- Returns:
- gültiger JWT-Token oder null
-
jwtRefresh
Description copied from interface:LoginService
Aktualisiert einen gültigen Token- Specified by:
jwtRefresh
in interfaceLoginService
- Parameters:
token
- Token der aktualisiert werden muss- Returns:
- gültiger JWT-Token oder null
-
jwtRefresh
Description copied from interface:LoginService
Aktualisiert einen gültigen Token- Specified by:
jwtRefresh
in interfaceLoginService
- Parameters:
lettoToken
- Token der aktualisiert werden muss- Returns:
- gültiger LeTTo-Token oder null
-
jwtLogout
Description copied from interface:LoginService
Führt einen Logout des Tokens durch und vernichtet den Token im Token-Store - danach ist kein Token-Refresh dieses Tokens mehr möglich!- Specified by:
jwtLogout
in interfaceLoginService
- Parameters:
token
- Token der ausgeloggt werden soll- Returns:
- true wenn der logout erfolgreich war, sonst false
-
logout
Description copied from interface:LoginService
Entfernt alle Tokens des Benutzers sodass kein Token-Refresh für diese Tokens mehr möglich ist!- Specified by:
logout
in interfaceLoginService
- Parameters:
token
- Token des Benutzers(Lehrer,Admin) der den Benutzer username ausloggen möchteusername
- Benutzernameschool
- Schulenkennung welche auch in der URL verwendet wird (eindeutig am Server)- Returns:
- true wenn der logout erfolgreich war, sonst false
-
jwtValidate
Description copied from interface:LoginService
Überprüft die Gültigkeit eines Tokens- Specified by:
jwtValidate
in interfaceLoginService
- Parameters:
token
- Token der geprüft werden muss- Returns:
- true wenn der Token gültig ist, sonst false
-
lettoTokenFromTokenString
Description copied from interface:LoginService
Liefert einen kompletten LettoToken aus einem Tokenstring wenn der Token gültig ist- Specified by:
lettoTokenFromTokenString
in interfaceLoginService
- Parameters:
token
- Token der geprüft werden muss- Returns:
- gültiger LeTTo-Token oder null
-
jwtGetTempTokenUri
- Specified by:
jwtGetTempTokenUri
in interfaceLoginService
- Parameters:
lettoToken
- gültiger Token- Returns:
- Liefert eine URI mit einem temporären Token zur Weiterleitung an LeTTo
-
jwtGetTempToken
Description copied from interface:LoginService
Liefert aus einem gültigen Token einen Temptoken für einen neuen refreshten Token- Specified by:
jwtGetTempToken
in interfaceLoginService
- Parameters:
lettoToken
- gültiger Token- Returns:
- Temptoken
-
jwtGetTempToken
Description copied from interface:LoginService
Liefert aus einem gültigen Token einen Temptoken für einen neuen refreshten Token- Specified by:
jwtGetTempToken
in interfaceLoginService
- Parameters:
token
- gültiger Token- Returns:
- Temptoken
-
jwtGetTempTokenUri
- Specified by:
jwtGetTempTokenUri
in interfaceLoginService
- Parameters:
token
- gültiger Token- Returns:
- Liefert eine URI mit einem temporären Token zur Weiterleitung an LeTTo
-
tokenInfo
Description copied from interface:LoginService
Liefert Information über den Token- Specified by:
tokenInfo
in interfaceLoginService
- Parameters:
token
- aktueller Token- Returns:
- Information über den Token
-
getAliasToken
Description copied from interface:LoginService
Liefert einen neuen Token um eine Alias-Rolle annehmen zu können- Specified by:
getAliasToken
in interfaceLoginService
- Parameters:
token
- aktueller Tokenusername
- neuer Benutzername in der gleichen Schule für den Alias-Benutzer- Returns:
- gültiger JWT-Token oder null
-
tempLogin
public boolean tempLogin(String username, String tempPassword, String school, String fingerprint, String ipaddress) Description copied from interface:LoginService
Schickt Benutzername, Passwort und Schule an den Endpoint und liefert ok wenn das Passwort dem Temp-Passwort entspricht ENDPOINT : LoginEndpoint.templogin- Specified by:
tempLogin
in interfaceLoginService
- Parameters:
username
- BenutzernametempPassword
- temporäres Passwortschool
- Schulkürzelfingerprint
- Fingerabdruck des Users (z.B. Fingerabdruck des Smartphones)ipaddress
- IP-Adresse des Users- Returns:
- true, wenn das Passwort ok ist, ansonsten false
-
setPassword
public boolean setPassword(String username, String school, String oldPassword, String newPassword, boolean tempPassword) Description copied from interface:LoginService
Setzt ein neues Benutzerpasswort eines Users an einer Schule und liefert ok wenn das Passwort gesetzt wurde ENDPOINT : LoginEndpoint.setpassword- Specified by:
setPassword
in interfaceLoginService
- Parameters:
username
- Benutzernameschool
- SchulkürzeloldPassword
- altes PasswortnewPassword
- neues PassworttempPassword
- true wenn das alte Passwort das Temp-Passwort ist, false wenn es das aktuelle normale Passwort ist- Returns:
- true wenn das Passwort korrekt gesetzt werden konnte
-
jwtTokenFromTempToken
Description copied from interface:LoginService
Liefert einen gültigen JWT-Token aus einem gültigen TempToken- Specified by:
jwtTokenFromTempToken
in interfaceLoginService
- Parameters:
tempToken
- tempToken der über Get-mitgeschickt wurdeserverSecret
- gemeinsames Secret des Servers ( Nicht das JWT-Secret!!)- Returns:
- gültiger JWT-Token
-
pingStudent
- Specified by:
pingStudent
in interfaceLoginService
-
pingTeacher
- Specified by:
pingTeacher
in interfaceLoginService
-
pingAdmin
- Specified by:
pingAdmin
in interfaceLoginService
-
getServerToken
Description copied from interface:LoginService
Erzeugt einen neuen Servertoken mit dem Login-Service entsprechend den Angaben im Request
Endpoint ist User-Authentificatet als User admin- Specified by:
getServerToken
in interfaceLoginService
- Parameters:
request
- Konfigration des neuen ServerTokens- Returns:
- neuen Servertoken als String
-
getServerTokenList
Description copied from interface:LoginService
Liefert eine Liste aller Token die erzeugt wurden und noch gültig sind- Specified by:
getServerTokenList
in interfaceLoginService
- Returns:
- Liste der Tokenstrings
-
removeServerToken
public boolean removeServerToken(long tokenID) Description copied from interface:LoginService
deaktiviert einen bestehenden Token indem er von der Liste gelöscht wird.- Specified by:
removeServerToken
in interfaceLoginService
- Parameters:
tokenID
- Token-ID des Token- Returns:
- true wenn es funktioniert hat
-
activateServerToken
public boolean activateServerToken(long tokenID) Description copied from interface:LoginService
aktiviert einen bestehenden Token .- Specified by:
activateServerToken
in interfaceLoginService
- Parameters:
tokenID
- Token-ID des Token- Returns:
- true wenn es funktioniert hat
-
deactivateServerToken
public boolean deactivateServerToken(long tokenID) Description copied from interface:LoginService
deaktiviert einen bestehenden Token durch eine Markierung .- Specified by:
deactivateServerToken
in interfaceLoginService
- Parameters:
tokenID
- Token-ID des Token- Returns:
- true wenn es funktioniert hat
-
loadServerToken
Description copied from interface:LoginService
Liefert wichtige Informationen zu einem gültigen ServerToken- Specified by:
loadServerToken
in interfaceLoginService
- Parameters:
tokenID
- Token-ID des Token- Returns:
- Informationen über den Token
-
refreshServerToken
Description copied from interface:LoginService
aktualisiert eine bestehenden Servertoken- Specified by:
refreshServerToken
in interfaceLoginService
- Parameters:
oldTokenString
- alter Servertoken- Returns:
- neuer Servertoken oder Leerstring wenn nicht erfolgreich
-
serverTokenInfo
Description copied from interface:LoginService
Liefert wichtige Informationen zu einem gültigen ServerToken- Specified by:
serverTokenInfo
in interfaceLoginService
- Parameters:
serverTokenString
- ServerToken- Returns:
- Informationen über den Token
-
getUserToken
public String getUserToken(String serverTokenString, String userTokenFremd, String language, String backlink, boolean tempToken, String fingerprint, String ipaddress) Description copied from interface:LoginService
Erzeugt einen neuen UserToken auf dem Remote-Server mit dem auf den Remotserver zugegriffen werden kann- Specified by:
getUserToken
in interfaceLoginService
- Parameters:
serverTokenString
- ServerToken für die Verbindung zum FremdserveruserTokenFremd
- lokaler User-Tokenlanguage
- Sprache welche verwendet werden sollbacklink
- Link welcher zurück zum Fremdserver führttempToken
- true wenn ein TempToken statt einem UserToken erzeugt werden sollfingerprint
- Fingerabdruck des Users (z.B. Fingerabdruck des Smartphones)ipaddress
- IP-Adresse des Users- Returns:
- UserToken oder Temptoken
-
getUserTokenDirect
Description copied from interface:LoginService
Erzeugt einen neuen UserToken auf dem Remote-Server mit dem auf den Remotserver zugegriffen werden kann- Specified by:
getUserTokenDirect
in interfaceLoginService
- Parameters:
userTokenRequestDto
- ServerToken für die Verbindung zum Fremdserver und Benutzerdaten- Returns:
- UserToken auf dem Remote-Server
-
createMessage
public String createMessage(String sender, String receiver, String topic, Object message, long lifetimeSeconds, boolean single, String messageSecret) Generiert eine Nachricht an ein Service welche in der REDIS-Datenbank gespeichert wird- Specified by:
createMessage
in interfaceLoginService
- Parameters:
sender
- Kennung des Sendersreceiver
- Kennung des Empfängerstopic
- Thema der Nachrichtmessage
- Nachricht als Objekt welches als JSON gespeichert wird!!lifetimeSeconds
- Lebensdauer der Nachricht in Sekunden bis sie gelöscht wirdsingle
- true wenn die Nachricht nur einmal abgeholt werden kann und dann sofort gelöscht wirdmessageSecret
- Secret damit nur Services eine Nachricht senden können welche das Secret kennen. - Sollte das ServerSecret sein!!- Returns:
- Kennung der Nachricht als String welcher auch als get-Parameter verwendet werden kann
-
getMessage
Lädt eine Nachricht aus der REDIS-Datenbank und löscht falls sie single ist sofort- Specified by:
getMessage
in interfaceLoginService
- Parameters:
messageID
- Kennung der Nachricht- Returns:
- Nachricht als Object oder null wenn die Nachricht nicht existiert
-