Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

  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 LDAP

  1. Selektieren Sie bei Provider type > LDAP.
  2. Wählen Sie im folgenden Dialog Authentication Provider und klicken Sie Next >.

Zugangsdaten via Datenbank

Als Datenquelle kann eine Datenbanktabelle verwendet werden. Das Datenmodell dafür kann frei defniert werden, lediglich die Datenfelder USERNAME und PASSWORD müssen vorhanden sein. 

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

  3. Wählen Sie bei Entity ein bereits existierendes Entity für die Benutzerdaten aus oder 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.
Optionen:
  • MD5 - Message Digest Algorithm ist eine Hashfunktion, die aus einem Passwort einen 128-Bit-Hashwert erzeugt. Gilt jedoch als nicht mehr sicher.

    cb9086f37a2e96bd5e4507f869888261
  • SHA1 - Secure Hash Algorithm 1 ist eine Hashfunktion, die aus einem Passwort einen 160-Bit-Hashwert erzeugt. 

    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.

    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. 

    eafa795b8ffea05d1c8a7d5142bd4dd50fea3dd447f3585071e5c8b2ef525cef
Ergebnis:
  • Project Management > Entities - Es wurde die Entity-Klasse User.java mit den Attributen username und password generiert oder durch Auswahl ein entsprechendes verwendet. 

  • Project Management > Data Access - Es wurde die Entity-Klasse UserDAO.java generiert oder durch Auswahl ein entsprechendes verwendet. 

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

    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;
    	}
    }
  • No labels