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 verwendet.
- Name der Datenbanktabelle - Der Tabellenname kann frei gewählt werden - in dieser Dokumentation USER.
- Pflichtfelder - Folgende Datenfelder müssen vorhanden sein:
- USERNAME | String - Speichert den Benutzernamen als String.
- PASSWORD | byte - Speichert das Passwort, i.d.R. verschlüsselt als Byte-Array.
- Weitere Datenfelder - Die Tabelle kann bei Bedarf auch weitere Datenfelder enthalten, da diese für die Authentifizierung nicht relevant sind.
Hinweis:
- USER Tabelle bereits in der Datenbank vorhanden
...
- - Zu Ihrer USER Tabelle benötigen Sie
...
- ein entsprechendes User Entity mit
...
- dazugehörigem UserDAO.
...
- Falls das in Ihrem Projekt Management > Entites noch kein User Entity vorhanden ist, können Sie dieses inklusive DAO mit der Import-Funktion Create JPA entities from table generieren lassen.
- Selektieren Sie bei Provider type > Database.
Klicken Sie Next >.
- Wählen Sie bei Entity das bereits existierendes Entity User für die Benutzerdaten aus.
- Wählen Sie bei Settings den Verschlüsselungs-Algorythmus aus, z.B. MD5.
- Klicken Sie auf Finish.
Noch keine USER Tabelle in der Datenbank vorhanden
- Selektieren Sie bei Provider type > Database.
Klicken Sie Next >.
- Klicken Sie User Entity bereits vorhanden - Wählen Sie Ihr bereits vorhandenes User Entity aus.
Noch kein User Entity vorhanden - 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.
- USER Tabelle noch nicht in der Datenbank vorhanden - Exportieren Sie das User Entity mit der Export-Funktion /wiki/spaces/DOC/pages/31850703 in Ihre Datenbank.
USER Tabelle bereits in der Datenbank vorhanden - Keine Aktion. - 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.
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
...
Passwort verschlüsselt speichern
Code Block language java theme Confluence String password = this.passwordField.getValue(); byte[] encryptedPassword = new HashStrategy.SHA2().hashPassword(pw.getBytes()); User user = new User(); user.setUsername(this.textField.getValue()); user.setPassword(encryptedPassword); try { new UserDAO().save(user); } catch (Exception e) { Notification.show("Error", Type.ERROR_MESSAGE); }
Hinweis:
- User Entity - Das generierte User Entity kann jederzeit mit zusätzlichen Attributen erweitert werden.