Class ClientCredentials

java.lang.Object
de.bsvrz.dav.daf.main.authentication.ClientCredentials

public abstract class ClientCredentials extends Object
Clientseitige Zugangsdaten zum Login beim Datenverteiler oder ähnlich.

Die Zugangsdaten bestehen entweder aus Benutzername und Passwort oder aus einem Login-Token, welcher ein binärer Code ist, bit dem sich der Client beim Server ausweisen kann ohne das Passwort im Klartext zu kennen. So ein Token kann beispielsweise das bei SRP6 verwendete x sein, mit dem der Client sich beim Server ausweisen kann, ohne dass das Klartextpasswort gespeichert oder eingegeben werden muss.

  • Method Details

    • ofPassword

      public static ClientCredentials ofPassword(char[] password)
      Erstellt eine Instanz, die ein Passwort speichert
      Parameters:
      password - Passwort
      Returns:
      Instanz oder null falls das angegebene Passwort null ist oder eine Länge von 0 hat.
    • ofToken

      public static ClientCredentials ofToken(byte[] tokenData, String tokenType)
      Erstellt eine Instanz, die ein Login-Token darstellt. Ein Token ist ein (binärer) Code mit dem sich der Client statt einem Passwort authentifizieren kann
      Parameters:
      tokenData - Binäre Daten (!= null)
      tokenType - Art des Tokens (z.B. SRP6 für ein SRP-"x", != null)
      Returns:
      Login-Token
    • ofString

      public static ClientCredentials ofString(String s)
      Erstellt eine Instanz aus einem serialisierten String (kompatibel mit toString()
      Parameters:
      s - Passwort als String oder als String serialisierter Token (wie in Authentifizierungsdatei), z. B. "geheim" oder "SRP6~~~~ abcde"
      Returns:
      Instanz oder null falls das Passwort null ist oder eine Länge von 0 hat.
    • getPassword

      public abstract char[] getPassword()
      Gibt das Passwort zurück
      Returns:
      das Passwort
      Throws:
      UnsupportedOperationException - falls es sich um einen Token-Login handelt (hasPassword() gibt false zurück)
    • getTokenData

      public abstract byte[] getTokenData()
      Gibt den binären Schlüssel zurück
      Returns:
      den Schlüssel
      Throws:
      UnsupportedOperationException - falls es sich um einen Passwort-Login handelt (hasPassword() gibt true zurück)
    • getTokenType

      public abstract String getTokenType()
      Gibt den Typ des binären Schlüssels zurück, beispielsweise "SRP6"
      Returns:
      den Schlüssel
      Throws:
      UnsupportedOperationException - falls es sich um einen Passwort-Login handelt (hasPassword() gibt true zurück)
    • hasPassword

      public abstract boolean hasPassword()
      Gibt true zurück, wenn es sich um einen Passwort-Login handelt
      Returns:
      true, wenn es sich um einen Passwort-Login handelt, sonst (bei einem Token-Login) false
    • toString

      public abstract String toString()
      Overrides:
      toString in class Object