Interface UserManagementFileInterface

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void clearOneTimePasswords​(java.lang.String userName)
      Löscht alle vorhandenen Einmalpasswörter eines Benutzers
      java.util.Map<java.lang.Integer,​java.lang.String> createOneTimePasswords​(java.lang.String userName, java.util.Collection<? extends java.lang.String> passwords)
      Fügt dem angegebenen Benutzer Einmalpasswörter hinzu
      void createUser​(java.lang.String userName, ClientCredentials password, boolean admin)
      Legt einen neuen Benutzer an.
      void createUser​(java.lang.String userName, ClientCredentials password, boolean admin, ConsoleInterface consoleInterface)
      Legt einen neuen Benutzer interaktiv an
      void createUser​(java.lang.String userName, ClientCredentials password, boolean admin, java.lang.String configArea, java.lang.String pid)
      Legt einen neuen Benutzer an.
      void deleteUser​(java.lang.String userName)
      Löscht den angegebenen Benutzer
      void disableOneTimePassword​(java.lang.String userName, int passwordID)
      Deaktiviert ein einzelnes Einmalpasswort eines Benutzers (markiert dieses als benutzt)
      default SrpCryptoParameter getCryptoParameter​(java.lang.String userName, int passwordIndex)
      Gibt die SRP6-Verschlüsselungsparameter für das angegebene Passwort zurück.
      java.lang.String getDavPid()
      Gibt die Pid des Datenverteilerobjekts zurück.
      default ClientCredentials getLoginToken​(java.lang.String userName, char[] password, int passwordIndex)
      Erzeugt ein Login-Token für den automatischen Login für einen Benutzer
      int[] getOneTimePasswordIDs​(java.lang.String userName)
      Gibt von einem Benutzer die Indizes der noch unbenutzten, verwendbaren, Einmalpasswörter zurück.
      java.util.Set<java.lang.String> getUsers()
      Gibt alle Benutzer zurück, die dem System bekannt sind.
      SrpVerifierAndUser getVerifier​(java.lang.String userName, int passwordIndex)
      Fragt den serverseitigen Überprüfungscode eines Benutzerpassworts ab.
      boolean isUserAdmin​(java.lang.String userName)
      Gibt true zurück, wenn der angegebene Benutzer ein Administrator ist.
      ClientCredentials setRandomToken​(java.lang.String userName)
      Setzt für den angebenden Benutzer einen neuen zufälligen Login-Token (ohne Passwort) und gobt dieses zurück.
      void setUserAdmin​(java.lang.String userName, boolean admin)
      Setzt für den angebenden Benutzer, ob er Admin-Rechte hat.
      ClientCredentials setUserNameAndPassword​(java.lang.String userName, java.lang.String newUserName, char[] password)
      Setzt für den angebenden Benutzer einen neuen Benutzernamen und ein neues Passwort.
      ClientCredentials setUserPassword​(java.lang.String userName, char[] password)
      Setzt für den angebenden Benutzer ein neues Passwort.
      void setVerifier​(java.lang.String userName, SrpVerifierData srpVerifierData)
      Setzt einen neuen Überprüfungscode.
      default boolean validateClientCredentials​(java.lang.String userName, ClientCredentials clientCredentials, int passwordIndex)
      Gibt zurück, ob das angegebene Passwort oder der angegebene Login-Token für den angegebenen Benutzernamen ein korrekter Login ist.
    • Method Detail

      • getUsers

        java.util.Set<java.lang.String> getUsers()
        Gibt alle Benutzer zurück, die dem System bekannt sind. Es ist undefiniert, welche Auswirkung das Verändern des zurückgegebenen Sets hat, im Zweifelsfall bitte eine Kopie erstellen.
        Returns:
        Set mit Benutzernamen
      • isUserAdmin

        boolean isUserAdmin​(java.lang.String userName)
                     throws ConfigurationTaskException
        Gibt true zurück, wenn der angegebene Benutzer ein Administrator ist.
        Returns:
        true, wenn der angegebene Benutzer ein Administrator ist, sonst false
        Throws:
        ConfigurationTaskException - wenn der Benutzer unbekannt ist oder die Information aus anderen Gründen nicht ermittelt werden konnte
      • setUserAdmin

        void setUserAdmin​(java.lang.String userName,
                          boolean admin)
                   throws ConfigurationTaskException
        Setzt für den angebenden Benutzer, ob er Admin-Rechte hat.
        Parameters:
        userName - Benutzer
        admin - Administrator-Rechte ja/nein?
        Throws:
        ConfigurationTaskException - wenn der Benutzer unbekannt ist oder die Anfrage aus anderen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • getCryptoParameter

        default SrpCryptoParameter getCryptoParameter​(java.lang.String userName,
                                                      int passwordIndex)
                                               throws ConfigurationTaskException
        Gibt die SRP6-Verschlüsselungsparameter für das angegebene Passwort zurück.
        Parameters:
        userName - Benutzername
        passwordIndex - Einmal-Passwort-Index oder -1 für das normale Passwort
        Returns:
        die SRP6-Verschlüsselungsparameter für das angegebene Passwort oder null, falls Passwort nicht mit SRP6 verschlüsselt wurde
        Throws:
        ConfigurationTaskException - wenn der Benutzer unbekannt ist oder die Anfrage aus anderen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • validateClientCredentials

        default boolean validateClientCredentials​(java.lang.String userName,
                                                  ClientCredentials clientCredentials,
                                                  int passwordIndex)
                                           throws ConfigurationTaskException
        Gibt zurück, ob das angegebene Passwort oder der angegebene Login-Token für den angegebenen Benutzernamen ein korrekter Login ist.
        Parameters:
        userName - Benutzername
        clientCredentials - Passwort oder Login-Token, siehe z. B. ClientCredentials.ofPassword(char[])
        passwordIndex - Einmal-Passwort-Index oder -1 für das normale Passwort
        Returns:
        die SRP6-Verschlüsselungsparameter für das angegebene Passwort oder null, falls Passwort nicht mit SRP6 verschlüsselt wurde
        Throws:
        ConfigurationTaskException - wenn der Benutzer unbekannt ist oder die Anfrage aus anderen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • setUserPassword

        ClientCredentials setUserPassword​(java.lang.String userName,
                                          char[] password)
                                   throws ConfigurationTaskException
        Setzt für den angebenden Benutzer ein neues Passwort.
        Parameters:
        userName - Benutzer
        password - Neues Passwort
        Returns:
        Passwort des Benutzers als ClientCredentials (in der Regel als Login-Token verschlüsselt)
        Throws:
        ConfigurationTaskException - wenn der Benutzer unbekannt ist oder die Anfrage aus anderen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • setUserNameAndPassword

        ClientCredentials setUserNameAndPassword​(java.lang.String userName,
                                                 java.lang.String newUserName,
                                                 char[] password)
                                          throws ConfigurationTaskException
        Setzt für den angebenden Benutzer einen neuen Benutzernamen und ein neues Passwort. Bei einer Änderung des Benutzernamens muss immer das Passwort mit gesetzt werden, da das Passwort anhand des Benutzernamens verschlüsselt wird. Als neues Passwort kann selbstverständlich das alte Passwort noch einmal angegeben werden, wodurch es mit dem neuen Benutzernamen neu verschlüsselt wird.

        Im Online-Modus wird das Benutzerobjekt umbenannt, die Pid (sofern vorhanden) bleibt jedoch gleich, damit Parameter, Referenzen usw. erhalten bleiben.

        Parameters:
        userName - Benutzer
        password - Neues Passwort
        Throws:
        ConfigurationTaskException - wenn der Benutzer unbekannt ist oder die Anfrage aus anderen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • setRandomToken

        ClientCredentials setRandomToken​(java.lang.String userName)
                                  throws ConfigurationTaskException
        Setzt für den angebenden Benutzer einen neuen zufälligen Login-Token (ohne Passwort) und gobt dieses zurück.
        Parameters:
        userName - Benutzer
        Returns:
        zufälliger Login-Token
        Throws:
        ConfigurationTaskException - wenn der Benutzer unbekannt ist oder die Anfrage aus anderen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • getLoginToken

        default ClientCredentials getLoginToken​(java.lang.String userName,
                                                char[] password,
                                                int passwordIndex)
                                         throws ConfigurationTaskException
        Erzeugt ein Login-Token für den automatischen Login für einen Benutzer
        Parameters:
        userName - Benutzername
        password - Benutzerpasswort
        passwordIndex - Einmal-Passwort-Index oder -1 für das normale Passwort
        Returns:
        Verschlüsseltes Passwort
        Throws:
        ConfigurationTaskException - wenn der Benutzer unbekannt ist oder die Anfrage aus anderen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • createUser

        void createUser​(java.lang.String userName,
                        ClientCredentials password,
                        boolean admin,
                        ConsoleInterface consoleInterface)
                 throws ConfigurationTaskException
        Legt einen neuen Benutzer interaktiv an
        Parameters:
        userName - Benutzername
        password - Initiales Passwort des Benutzers
        admin - Soll der Benutzer Administratorrechte haben?
        consoleInterface - Interface für die interaktive Abfrage von weiteren Informationen (z. B. Konfigurationsbereich, Pid)
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • createUser

        void createUser​(java.lang.String userName,
                        ClientCredentials password,
                        boolean admin,
                        java.lang.String configArea,
                        java.lang.String pid)
                 throws ConfigurationTaskException
        Legt einen neuen Benutzer an. Die beiden letzten Parameter sind nur für die UserManagementFileOnline-Implementierung relevant
        Parameters:
        userName - Benutzername
        password - Initiales Passwort des Benutzers
        admin - Soll der Benutzer Administratorrechte haben?
        configArea - Pid des Konfigurationsbereichs, in dem das Benutzerobjekt im Datenverteiler angelegt werden soll
        pid - Pid des neuen Benutzerobjekts im Datenverteiler
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • createUser

        void createUser​(java.lang.String userName,
                        ClientCredentials password,
                        boolean admin)
                 throws ConfigurationTaskException
        Legt einen neuen Benutzer an. Konfigurationsbereich und Benutzer-Pid werden bei Bedarf automatisch festgelegt.
        Parameters:
        userName - Benutzername
        password - Initiales Passwort des Benutzers
        admin - Soll der Benutzer Administratorrechte haben?
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • deleteUser

        void deleteUser​(java.lang.String userName)
                 throws ConfigurationTaskException
        Löscht den angegebenen Benutzer
        Parameters:
        userName - Benutzername
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • createOneTimePasswords

        java.util.Map<java.lang.Integer,​java.lang.String> createOneTimePasswords​(java.lang.String userName,
                                                                                       java.util.Collection<? extends java.lang.String> passwords)
                                                                                throws ConfigurationTaskException
        Fügt dem angegebenen Benutzer Einmalpasswörter hinzu
        Parameters:
        userName - Benutzer
        passwords - Einmalpasswörter
        Returns:
        Map, die die übergebenen Einmalpasswörter nach ihrem Passwortindex indiziert speichert. Der verwendete Passwortindex wird automatisch ermittelt.
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • clearOneTimePasswords

        void clearOneTimePasswords​(java.lang.String userName)
                            throws ConfigurationTaskException
        Löscht alle vorhandenen Einmalpasswörter eines Benutzers
        Parameters:
        userName - Benutzername
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • getOneTimePasswordIDs

        int[] getOneTimePasswordIDs​(java.lang.String userName)
                             throws ConfigurationTaskException
        Gibt von einem Benutzer die Indizes der noch unbenutzten, verwendbaren, Einmalpasswörter zurück.
        Parameters:
        userName - Benutzername, für den Passwörter abgefragt werden sollen
        Returns:
        Indizes der noch verwendbaren Einmalpasswörter (leeres Array, falls keine Passwörter mehr verfügbar sind), aufsteigend sortiert.
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • disableOneTimePassword

        void disableOneTimePassword​(java.lang.String userName,
                                    int passwordID)
                             throws ConfigurationTaskException
        Deaktiviert ein einzelnes Einmalpasswort eines Benutzers (markiert dieses als benutzt)
        Parameters:
        userName - Benutzername
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde
      • getDavPid

        java.lang.String getDavPid()
        Gibt die Pid des Datenverteilerobjekts zurück. Diese Methode wird für die Generierung eines Login-Tokens für fremde Server benutzt.
        Returns:
        die Pid des Datenverteilerobjekts oder einen Ersatz-String wie "<Lokal>" falls nicht ermittelbar.
      • getVerifier

        SrpVerifierAndUser getVerifier​(java.lang.String userName,
                                       int passwordIndex)
                                throws ConfigurationTaskException
        Fragt den serverseitigen Überprüfungscode eines Benutzerpassworts ab. Warnung: der Überprüfungscode kann ggf. Brute-Force-Angriffe auf das Benutzerpasswort erleichtern. Diese Operation wird in der Regel nur für den eigenen Benutzer zugelassen oder benötigt sonst Admin-Rechte.
        Parameters:
        userName - Benutzername
        passwordIndex - Einmal-Passwort-Index oder -1 für das normale Passwort
        Returns:
        Objekt, das daten über den Benutzer und den Überprüfungscode enthält
        Throws:
        ConfigurationTaskException - Wenn die Anfrage aus diversen Gründen (z. B. fehlende Berechtigung) abgelehnt wurde