Versions Compared

Key

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

Für die Umsetzung von Autorisierung werden in der Datenbank 3 Tabellen für die Verwaltung von Benutzer, Rollen und Rechte benötigt, die jeweils durch eine n:m Relation miteinander verknüpft sind. Per Assistent können Sie sich die entsprechenden Entities dafür generieren lassen. Zusätzlich werden die Entities durch ein Mapping miteinander verknüpft. Dadurch kann RapidClipse mit belibigen beliebigen Bezeichnungen von Entities und Attributen umgehen. Falls das Standard-Mapping für Ihre Datenstruktur ungeeignet ist, können Sie dafür benutzerdefinierte Abfragen definieren.

...

  • Benötigte Datenstruktur allgemein

    • Benutzer - Speicherung von Benutzername, Passwort und ggf. zusätzliche nutzerspezifische Informationen. In RapidClipse APIs verwendete Bezeichnungen: User, Subject.

    • Rollen - Speicherung der Rollen / Gruppen die ein Benutzer angehören kann. In RapidClipse APIs verwendete Bezeichnungen: Roles, Usergroups, Userroles.

    • Rechte - Speicherung der Rechte die eine Rolle besitzen kann. Hier können auch Zustände oder Bedingungen gespeichert werden die erfüllt sein müssen. In RapidClipse APIs verwendete Bezeichnungen: Permissions, Resources.

  • Von RapidClipse generierte Datenstruktur 

    • Entities

      EntityAttributeDatentypErklärung
      UserusernameStringSpeichert den Benutzernamen als String.
      passwordbyte[]Speichert das Passwort als Byte-Array, i.d.R. verschlüsselt.
      rolesSet / ListListe aller Rollen.
      Role


      nameStringSpeichert die Bezeichnung der Rollen als String.
      resourcesSet / ListListe aller Rechte.
      childRolesSet / ListListe aller Rollen.
      parentRolesSet / ListListe aller Rollen.
      usersSet / ListListe aller Benutzer.
      ResourcenameStringSpeichert die Bezeichnung einer Berechtigung als String.
      rolesSet / ListListe aller Rollen.


    • Data Access

      • UserDAO

      • RoleDAO

      • ResourceDAO

    • Datenbanktabellen (am Beispiel MySQL) - Durch der (Hibernate) Entity-Export-Funktion generierte Datenbanktabellen.

      EntityDatenfelderDatentypErklärung
      USERUSERNAMEvarchar(255)Speichert die Benutzerdaten, u.a. Benutzername und Passwort.

      passwordtinyblob
      ROLENAMEvarchar(255)Speichert alle Rollen.
      RESOURCENAMEvarchar(255)Speichert alle Rechte.
      ROLERESOURCENMROLEvarchar(255)Speichert alle Rolle-Recht Kombinationen. Eine Rolle kann viele Rechte haben, ein Recht kann in vielen Rollen vorkommen.
      RESOURCEvarchar(255)
      ROLEROLENM CHILDROLEvarchar(255)Speichert alle Rolle-Rolle Kombinationen und ermöglicht dadurch die Verschachtelung von Rollen.
      PARENTROLEvarchar(255)
      USERROLENMUSERvarchar(255)Speichert alle Benutzer-Rolle Kombinationen. Ein Benutzer kann viele Rollen haben, eine Rolle kann von vielen Benutzern eingenommen werden.
      ROLEvarchar(255)


  • Umgang mit vorhandener Datenbank - Sind in Ihrer Datenbank bereits Tabellen für die Verwaltung von Benutzern, Rollen und Rechten vorhanden, stellen Sie sicher, dass für jede Tabelle ein entsprechendes Entity mit dazugehörigem DAO in Ihrem Project Management unter Entities bzw. Data Access vorhanden ist. Falls nicht, können Sie die fehlenden Entities und DAOs 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. 

...

  1. Entity für Berechtigungen bereits vorhanden - Wählen Sie Ihr bereits vorhandenes Entity aus.
    Noch kein Resource Entity vorhanden - Klicken Sie auf New Entity... um ein neues Entity Resource inklusive DAO ResourceDAO anzulegen. 
  2. Wählen Sie bei Mapping > Resource name das Attribut zur Speicherung der Benutzerrechte aus.
  3. Klicken Sie auf Next >.
Optionen:
  • Resource name - Auswahl des Attributs für die Bezeichnung der Benutzerrechte. 

Hinweis:
  • Mapping Wenn Sie das Entity Resource generieren lassen, können Sie das vorgegebene Attribut Resource.name übernehmen.

Ergebnis:
  • Project Management > Entities - Es wird die Entity-Klasse Resource.java generiert oder durch Auswahl ein bereits existierendes Entity verwendet.

    EntityAttributeDatentyp
    ResourcenameString


  • Project Management > Data Access - Es wird die DAO-Klasse ResourceDAO.java generiert. Bei Auswahl eines bereits existierenden Entities wird kein neues DAO generiert. 

...