Interface LoginService

All Known Implementing Classes:
RestLoginService

public interface LoginService
Service für die Authentifikation von Benutzern
  • Method Details

    • jwtLogin

      String jwtLogin(String username, String password, String school, String fingerprint, String ipaddress, String service, String infos, String userAgent)
      Prüft Benutzernamen und Passwort über das Loginservice
      Parameters:
      username - Benutzername
      password - Passwort unverschlüsselt
      school - Schulkennung welche auch in der URL verwendet wird (eindeutig am Server)
      fingerprint - Fingerabdruck des Users (z.B. Fingerabdruck des Smartphones)
      ipaddress - IP-Adresse des Users
      service - Service welcher die Authentifizierung anfordert, z.B. "letto-login", "letto-edit", "letto-admin" etc.
      infos - zusätzliche Informationen über den Client, wer, was, wo, warum
      userAgent - 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

      TokenLoginResult 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ück
      Parameters:
      username - Benutzername
      password - Passwort unverschlüsselt
      school - Schulkennung welche auch in der URL verwendet wird (eindeutig am Server)
      fingerprint - Fingerabdruck des Users (z.B. Fingerabdruck des Smartphones)
      ipaddress - IP-Adresse des Users
      service - Service welcher die Authentifizierung anfordert, z.B. "letto-login", "letto-edit", "letto-admin" etc.
      infos - zusätzliche Informationen über den Client, wer, was, wo, warum
      userAgent - 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
    • jwtLogout

      boolean jwtLogout(String token)
      Führt einen Logout des Tokens durch und vernichtet den Token im Token-Store - danach ist kein Token-Refresh dieses Tokens mehr möglich!
      Parameters:
      token - Token der ausgeloggt werden soll
      Returns:
      true wenn der logout erfolgreich war, sonst false
    • logout

      boolean logout(String token, String username, String school)
      Entfernt alle Tokens des Benutzers sodass kein Token-Refresh für diese Tokens mehr möglich ist!
      Parameters:
      token - Token des Benutzers(Lehrer,Admin) der den Benutzer username ausloggen möchte
      username - Benutzername
      school - Schulenkennung welche auch in der URL verwendet wird (eindeutig am Server)
      Returns:
      true wenn der logout erfolgreich war, sonst false
    • jwtValidate

      TokenValidationResult jwtValidate(String token, String fingerprint)
      Überprüft die Gültigkeit eines Tokens
      Parameters:
      token - Token der geprüft werden muss
      Returns:
      true wenn der Token gültig ist, sonst false
    • lettoTokenFromTokenString

      TokenLoginResult lettoTokenFromTokenString(String token)
      Liefert einen kompletten LettoToken aus einem Tokenstring wenn der Token gültig ist
      Parameters:
      token - Token der geprüft werden muss
      Returns:
      gültiger LeTTo-Token oder null
    • jwtRefresh

      @Deprecated TokenLoginResult jwtRefresh(LettoToken lettoToken)
      Deprecated.
      Aktualisiert einen gültigen Token
      Parameters:
      lettoToken - Token der aktualisiert werden muss
      Returns:
      gültiger LeTTo-Token oder null
    • jwtRefresh

      @Deprecated String jwtRefresh(String token)
      Deprecated.
      Aktualisiert einen gültigen Token
      Parameters:
      token - Token der aktualisiert werden muss
      Returns:
      gültiger JWT-Token oder null
    • jwtRefresh

      TokenLoginResult jwtRefresh(LettoToken lettoToken, String fingerprint)
      Aktualisiert einen gültigen Token
      Parameters:
      lettoToken - Token der aktualisiert werden muss
      Returns:
      gültiger LeTTo-Token oder null
    • jwtRefresh

      String jwtRefresh(String token, String fingerprint)
      Aktualisiert einen gültigen Token
      Parameters:
      token - Token der aktualisiert werden muss
      Returns:
      gültiger JWT-Token oder null
    • jwtTokenFromTempToken

      String jwtTokenFromTempToken(String tempToken, String serverSecret)
      Liefert einen gültigen JWT-Token aus einem gültigen TempToken
      Parameters:
      tempToken - tempToken der über Get-mitgeschickt wurde
      serverSecret - gemeinsames Secret des Servers ( Nicht das JWT-Secret!!)
      Returns:
      gültiger JWT-Token
    • jwtGetTempTokenUri

      String jwtGetTempTokenUri(LettoToken lettoToken)
      Parameters:
      lettoToken - gültiger Token
      Returns:
      Liefert eine URI mit einem temporären Token zur Weiterleitung an LeTTo
    • jwtGetTempToken

      String jwtGetTempToken(LettoToken lettoToken)
      Liefert aus einem gültigen Token einen Temptoken für einen neuen refreshten Token
      Parameters:
      lettoToken - gültiger Token
      Returns:
      Temptoken
    • jwtGetTempToken

      String jwtGetTempToken(String token)
      Liefert aus einem gültigen Token einen Temptoken für einen neuen refreshten Token
      Parameters:
      token - gültiger Token
      Returns:
      Temptoken
    • jwtGetTempTokenUri

      String jwtGetTempTokenUri(String token)
      Parameters:
      token - gültiger Token
      Returns:
      Liefert eine URI mit einem temporären Token zur Weiterleitung an LeTTo
    • tokenInfo

      TokenInfoResponseDto tokenInfo(String token)
      Liefert Information über den Token
      Parameters:
      token - aktueller Token
      Returns:
      Information über den Token
    • getAliasToken

      String getAliasToken(String token, String username)
      Liefert einen neuen Token um eine Alias-Rolle annehmen zu können
      Parameters:
      token - aktueller Token
      username - neuer Benutzername in der gleichen Schule für den Alias-Benutzer
      Returns:
      gültiger JWT-Token oder null
    • tempLogin

      boolean 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.templogin
      Parameters:
      username - Benutzername
      tempPassword - temporäres Passwort
      school - Schulkürzel
      fingerprint - Fingerabdruck des Users (z.B. Fingerabdruck des Smartphones)
      ipaddress - IP-Adresse des Users
      Returns:
      true, wenn das Passwort ok ist, ansonsten false
    • setPassword

      boolean 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.setpassword
      Parameters:
      username - Benutzername
      school - Schulkürzel
      oldPassword - altes Passwort
      newPassword - neues Passwort
      tempPassword - 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
    • getServerToken

      String getServerToken(GetServerTokenRequest request)
      Erzeugt einen neuen Servertoken mit dem Login-Service entsprechend den Angaben im Request
      Endpoint ist User-Authentificatet als User admin
      Parameters:
      request - Konfigration des neuen ServerTokens
      Returns:
      neuen Servertoken als String
    • getServerTokenList

      ServerTokenListDto getServerTokenList()
      Liefert eine Liste aller Token die erzeugt wurden und noch gültig sind
      Returns:
      Liste der Tokenstrings
    • removeServerToken

      boolean removeServerToken(long tokenID)
      deaktiviert einen bestehenden Token indem er von der Liste gelöscht wird.
      Parameters:
      tokenID - Token-ID des Token
      Returns:
      true wenn es funktioniert hat
    • deactivateServerToken

      boolean deactivateServerToken(long tokenID)
      deaktiviert einen bestehenden Token durch eine Markierung .
      Parameters:
      tokenID - Token-ID des Token
      Returns:
      true wenn es funktioniert hat
    • activateServerToken

      boolean activateServerToken(long tokenID)
      aktiviert einen bestehenden Token .
      Parameters:
      tokenID - Token-ID des Token
      Returns:
      true wenn es funktioniert hat
    • loadServerToken

      GeneratedServerToken loadServerToken(long tokenID)
      Liefert wichtige Informationen zu einem gültigen ServerToken
      Parameters:
      tokenID - Token-ID des Token
      Returns:
      Informationen über den Token
    • refreshServerToken

      String refreshServerToken(String oldTokenString)
      aktualisiert eine bestehenden Servertoken
      Parameters:
      oldTokenString - alter Servertoken
      Returns:
      neuer Servertoken oder Leerstring wenn nicht erfolgreich
    • serverTokenInfo

      HashMap<String,String> serverTokenInfo(String serverTokenString)
      Liefert wichtige Informationen zu einem gültigen ServerToken
      Parameters:
      serverTokenString - ServerToken
      Returns:
      Informationen über den Token
    • getUserToken

      String getUserToken(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 kann
      Parameters:
      serverTokenString - ServerToken für die Verbindung zum Fremdserver
      userTokenFremd - lokaler User-Token
      language - Sprache welche verwendet werden soll
      backlink - Link welcher zurück zum Fremdserver führt
      tempToken - true wenn ein TempToken statt einem UserToken erzeugt werden soll
      fingerprint - Fingerabdruck des Users (z.B. Fingerabdruck des Smartphones)
      ipaddress - IP-Adresse des Users
      Returns:
      UserToken oder Temptoken
    • getUserTokenDirect

      String getUserTokenDirect(UserTokenRequestDto userTokenRequestDto)
      Erzeugt einen neuen UserToken auf dem Remote-Server mit dem auf den Remotserver zugegriffen werden kann
      Parameters:
      userTokenRequestDto - ServerToken für die Verbindung zum Fremdserver und Benutzerdaten
      Returns:
      UserToken auf dem Remote-Server
    • pingStudent

      boolean pingStudent(String token)
    • pingTeacher

      boolean pingTeacher(String token)
    • pingAdmin

      boolean pingAdmin(String token)
    • createMessage

      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
      Parameters:
      sender - Kennung des Senders
      receiver - Kennung des Empfängers
      topic - Thema der Nachricht
      message - Nachricht als Objekt welches als JSON gespeichert wird!!
      lifetimeSeconds - Lebensdauer der Nachricht in Sekunden bis sie gelöscht wird
      single - true wenn die Nachricht nur einmal abgeholt werden kann und dann sofort gelöscht wird
      messageSecret - Secret damit nur Services eine Nachricht senden können welche das Secret kennen.
      Returns:
      Kennung der Nachricht als String welcher auch als get-Parameter verwendet werden kann
    • getMessage

      MessageDto getMessage(String messageID)
      Lädt eine Nachricht aus der REDIS-Datenbank und löscht falls sie single ist sofort
      Parameters:
      messageID - Kennung der Nachricht
      Returns:
      Nachricht als Object oder null wenn die Nachricht nicht existiert