...
Zugangsdaten via Datenbank
Als Datenquelle kann für die Zugangsdaten wird eine Datenbanktabelle (z.B. USER) verwendet werden. Das Datenmodell dafür kann frei defniert werden, lediglich die Datenfelder USERNAME und PASSWORD müssen vorhanden sein. , 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.
Anwendungsfälle:
- USER Tabelle bereits 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.
- USER Tabelle noch nicht vorhanden - Falls in Ihrer Datenbank noch keine USER Tabelle vorhanden ist, können Sie in RapidClipse ein User Entity mit dazugehörigem UserDAO anlegen und die USER Tabelle mit der Export-Funktion /wiki/spaces/DOC/pages/31850703 in Ihrer Datenbank anlegen lassen.
- Selektieren Sie bei Provider type > Database.
Klicken Sie Next >.
- Wählen Sie bei Entity ein bereits existierendes Entity User 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.
- Wählen Sie bei Settings den Verschlüsselungs-Algorythmus aus, z.B. MD5.
- Klicken Sie auf Finish.
- Falls in Ihrer Datenbank noch keine USER Tabelle vorhanden ist, exportieren Sie das Entity User 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 language java theme Confluence // Example RapidClipse cb9086f37a2e96bd5e4507f869888261
SHA1 - Secure Hash Algorithm 1 ist eine Hashfunktion, die aus einem Passwort einen 160-Bit-Hashwert erzeugt.
Code Block language java theme Confluence // 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 language java theme Confluence // Example RapidClipse eafa795b8ffea05d1c8a7d5142bd4dd50fea3dd447f3585071e5c8b2ef525cef
...
Project Management > Entities - Es wurde wird die Entity-Klasse User.java mit den Attributen username und password vom Typ String sowie password vom Typ byte generiert oder durch Auswahl ein entsprechendes bereits existierendes User Entity verwendet.
Project Management > Data Access - Es wurde wird die Entity-Klasse UserDAO.java generiert oder generiert oder durch Auswahl ein entsprechendes eines bereits existierendes User Entity das entsprecehnde UserDAO verwendet.
Project Management > Business Objects - Es wurde wird die Klasse ExampleAuthenticationProvider.java generiert.
Code Block language java theme Confluence 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:
- User Entity - Das generierte User Entity kann jederzeit mit zusätzlichen Attributen erweitert werden.