Class ClientCredentials

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

public abstract class ClientCredentials
extends java.lang.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 Summary

    Modifier and Type Method Description
    abstract char[] getPassword()
    Gibt das Passwort zurück
    abstract byte[] getTokenData()
    Gibt den binären Schlüssel zurück
    abstract java.lang.String getTokenType()
    Gibt den Typ des binären Schlüssels zurück, beispielsweise "SRP6"
    abstract boolean hasPassword()
    Gibt true zurück, wenn es sich um einen Passwort-Login handelt
    static ClientCredentials ofPassword​(char[] password)
    Erstellt eine Instanz, die ein Passwort speichert
    static ClientCredentials ofString​(java.lang.String s)
    Erstellt eine Instanz aus einem serialisierten String (kompatibel mit toString()
    static ClientCredentials ofToken​(byte[] tokenData, java.lang.String tokenType)
    Erstellt eine Instanz, die ein Login-Token darstellt.
    abstract java.lang.String toString()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 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, java.lang.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​(java.lang.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:
      java.lang.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:
      java.lang.UnsupportedOperationException - falls es sich um einen Passwort-Login handelt (hasPassword() gibt true zurück)
    • getTokenType

      public abstract java.lang.String getTokenType()
      Gibt den Typ des binären Schlüssels zurück, beispielsweise "SRP6"
      Returns:
      den Schlüssel
      Throws:
      java.lang.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 java.lang.String toString()
      Overrides:
      toString in class java.lang.Object