Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Als Datenquelle für die Zugangsdaten wird eine Datenbanktabelle verwendet.

  • Name der Datenbanktabelle - Der Tabellenname kann frei gewählt werden, i.d.R. USER.
  • Pflichtfelder - Folgende Datenfelder müssen vorhanden sein: 

    PflichtfelderDatentypErklärung
    USERNAMEStringSpeichert den Benutzernamen als String.
    PASSWORDbyte[]Speichert das Passwort als Byte-Array, i.d.R. verschlüsselt.
  • Von RapidClipse generierte Datenstruktur 

    • Entities

      AttributeDatentypErklärung
      usernameStringSpeichert den Benutzernamen als String.
      passwordbyte[]Speichert das Passwort als Byte-Array, i.d.R. verschlüsselt.
    • Data Access

      • UserDAO

      • RoleDAO

      • ResourceDAO

  • Weitere Datenfelder - Die USER Tabelle kann bei Bedarf auch weitere Datenfelder enthalten, da diese für die Authentifizierung nicht relevant sind.  Häufig benötigte Informationen zu einem Benutzer sind u.a. E-Mail, Status (aktiviert oder deaktiviert), Foto, Zeitzone, Letzte Session, IP-Addresse, URL zu einer Log-Datei etc.
  • Umgang mit vorhandener USER Tabelle - Ist in Ihrer Datenbank bereits eine Tabelle für die Verwaltung von Benutzern vorhanden, stellen Sie sicher, dass für diese ein entsprechendes Entity mit dazugehörigem DAO in Ihrem Project Management unter Entities bzw. Data Access vorhanden ist. Falls nicht, können Sie das fehlende Entity und DAO mit der Import-Funktion Create JPA entities from table generieren lassen. Abweichende Tabellen- und Datenfeldnamen stellen auf Grund des später durchgeführten Mappings kein Problem dar. 

...

  • Passwort verschlüsselt speichern

    Code Block
    languagejava
    themeConfluence
    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);
    }// TODO: handle exception
    }
Hinweis:
  • Passwort speichern und editieren - Formulare werden üblicherweise sowohl für Speichern und Editieren von Daten verwendet. Für das Speichern und Editieren von Passwörter müssen Sie jedoch unterschiedliche Formulare erstellen. Denn beim Speichern wird das Passwort verschlüsselt in die Datenbanktabelle geschrieben, sodass Sie beim lesenden Zugriff immer ein verschlüsseltes Passowrt erhalten. Ein erneutes Speichern, würde das bereits verschlüsselte Passwort ein weiteres Mal verschlüsseln und dadurch ungültig machen.
  • Passwörter manuell in Datenbanktabelle eintragen