Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  1. Wählen Sie im Menü File > New > Other....
  2. Wählen Sie im folgenden Dialog Authentication Provider und klicken Sie Next >.

  3. Geben Sie bei Name die Bezeichnung für Ihren Authentication Provider an, z.B. ExampleAuthenticationProvider.

Zugangsdaten via Datenbank

Als Datenquelle für die Zugangsdaten wird eine Datenbanktabelle (z.B. USER) verwendet, in der die Datenfelder USERNAME und PASSWORD vorhanden sein müssen. Anstelle von USER kann eine belieibige Bezeichnung gewählt werden. Ebenso kann die USER Tabelle bei Bedarf auch weitere Datenfelder enthalten, da diese für die Authentifizierung nicht relevant sind.

USER Tabelle bereits in der Datenbank vorhanden

Falls bereits eine USER Tabelle in Ihrer Datenbank vorhanden ist, benötigen Sie davon ein entsprechendes User Entity mit dazugehörigem UserDAO. Beides können Sie mit der Import-Funktion Create JPA entities from table generieren lassen.

  1. Selektieren Sie bei Provider type > Database.
  2. Klicken Sie Next >.

  3. Wählen Sie bei Entity das bereits existierendes Entity User für die Benutzerdaten aus.
  4. Wählen Sie bei Settings den Verschlüsselungs-Algorythmus aus, z.B. MD5.
  5. Klicken Sie auf Finish.
    Image Removed

Noch keine USER Tabelle in der Datenbank vorhanden

  1. Selektieren Sie bei Provider type > Database.
  2. Klicken Sie Next >.

  3. Klicken Sie auf /wiki/spaces/DOC/pages/31850645 um ein neues Entity User mit den Attributen username vom Typ String sowie password vom Typ byte anzulegen. 
  4. Wählen Sie bei Settings den Verschlüsselungs-Algorythmus aus, z.B. MD5.
  5. Klicken Sie auf Finish.
    Image Removed
  6. Exportieren Sie das User Entity mit der Export-Funktion /wiki/spaces/DOC/pages/31850703 in Ihre Datenbank.
Optionen:
  • MD5 - Message Digest Algorithm ist eine Hashfunktion, die aus einem Passwort einen 128-Bit-Hashwert erzeugt. Gilt jedoch als nicht mehr sicher.

    Code Block
    languagejava
    themeConfluence
    // Example RapidClipse
    cb9086f37a2e96bd5e4507f869888261
  • SHA1 - Secure Hash Algorithm 1 ist eine Hashfunktion, die aus einem Passwort einen 160-Bit-Hashwert erzeugt. 

    Code Block
    languagejava
    themeConfluence
    // Example RapidClipse
    64d88c018c7ced7e248e42b48593bd82c5e80ef2
  • SHA2 - Secure Hash Algorithm 2 ist der aktuell empfohlene Standard für SHA, die aus einem Passwort einen 224-, 256-, 384- oder 512-Bit-Hashwert erzeugt.

    Code Block
    languagejava
    themeConfluence
    // Example RapidClipse
    eafa795b8ffea05d1c8a7d5142bd4dd50fea3dd447f3585071e5c8b2ef525cef
  • PBKDF2WithHmacSHA1 - Kombination aus PBKDF2, HMAC und SHA1, die einen 160-Bit-Hahswert erzeugt. PBKDF2 (Password-Based Key Derivation Function 2) ist eine genormte Funktion für die Ableitung eines Schlüssels aus einem Passwort und wird oft für die passwort-basierte Authentifizierung benutzt. HMAC (Keyed-Hash Message Authentication Code) ist ein Message Authentication Code (MAC), dessen Konstruktion auf einer kryptografischen Hash-Funktion basiert. SHA1 ist eine Hashfunktion, die aus einem Passwort einen 160-Bit-Hashwert erzeugt. 

    Code Block
    languagejava
    themeConfluence
    // Example RapidClipse
    eafa795b8ffea05d1c8a7d5142bd4dd50fea3dd447f3585071e5c8b2ef525cef
Ergebnis:
  • Project Management > Entities - Es wird die Entity-Klasse User.java mit den Attributen username vom Typ String sowie password vom Typ byte generiert oder durch Auswahl ein bereits existierendes User Entity verwendet. 
    Image Removed

  • Project Management > Data Access - Es wird die Entity-Klasse UserDAO.java generiert oder durch Auswahl eines bereits existierendes User Entity das entsprecehnde UserDAO verwendet. 

  • Project Management > Business Objects - Es wird die Klasse ExampleAuthenticationProvider.java generiert.

    Code Block
    languagejava
    themeConfluence
    package com.company.example.business;
    
    import com.company.example.entities.User;
    import com.xdev.security.authentication.Authenticator;
    import com.xdev.security.authentication.AuthenticatorProvider;
    import com.xdev.security.authentication.CredentialsUsernamePassword;
    import com.xdev.security.authentication.jpa.JPAAuthenticator;
    import com.xdev.security.authentication.jpa.HashStrategy.MD5;
    
    public class ExampleAuthenticationProvider
    		implements AuthenticatorProvider<CredentialsUsernamePassword, CredentialsUsernamePassword> {
    	private static ExampleAuthenticationProvider INSTANCE;
    
    	public static ExampleAuthenticationProvider getInstance() {
    		if (INSTANCE == null) {
    			INSTANCE = new ExampleAuthenticationProvider();
    		}
    
    		return INSTANCE;
    	}
    
    	private JPAAuthenticator authenticator;
    
    	private ExampleAuthenticationProvider() {
    	}
    
    	@Override
    	public Authenticator<CredentialsUsernamePassword, CredentialsUsernamePassword> provideAuthenticator() {
    		if (this.authenticator == null) {
    			this.authenticator = new JPAAuthenticator(User.class);
    			this.authenticator.setHashStrategy(new MD5());
    		}
    
    		return this.authenticator;
    	}
    }
Hinweis:

...

  1. Selektieren Sie bei Provider type > LDAP oder Database.

LDAP als Datenquelle

Datenbank als Datenquelle