Liebe Java-Freunde,
Ich habe folgendes Problem:
Ich möchte gerne eine Rechteverwaltung implementieren, bei der Rollen mit bestimmten Rechten ausgestattet werden können. Meine erste Idee ist, das ganze mit einem Dekorator umzusetzen, da dadurch weniger Unterklassen erzeugt werden müssen. Zur Laufzeit könnten Berechtigungen wie z.B. "Benutzer" oder "Server" mit den Aktionen "Erstellen", "Löschen" etc. dekoriert werden, um z.B. eine Berechtigung zu bilden, die das Erstellen Von Benutzern oder das Löschen von Servern erlaubt.
Der schwierige Teil ist, die Berechtigung abzufragen. Die Aktion, die einen Benutzer erstellt, muss ihre Berechtigung kennen um sie abzufragen. Ich könnte zwar zusätzlich eine Enumeration verwenden, die alle Berechtigungen enthält, aber damit wäre die Laufzeitflexibilität des Dekorators wieder zerstört.
Deswegen meine Frage: Hat jemand schonmal etwas ähnliches implementiert? Hat jemand Tipps/Hinweise, wie man das am einfachsten lösen könnte? Kennt jemand eine coole Bibliothek, die man ohne großen Aufwand dafür verwenden kann?
Ich freue mich über jeden Kommentar, vielen Dank
Ich habe folgendes Problem:
Ich möchte gerne eine Rechteverwaltung implementieren, bei der Rollen mit bestimmten Rechten ausgestattet werden können. Meine erste Idee ist, das ganze mit einem Dekorator umzusetzen, da dadurch weniger Unterklassen erzeugt werden müssen. Zur Laufzeit könnten Berechtigungen wie z.B. "Benutzer" oder "Server" mit den Aktionen "Erstellen", "Löschen" etc. dekoriert werden, um z.B. eine Berechtigung zu bilden, die das Erstellen Von Benutzern oder das Löschen von Servern erlaubt.
Der schwierige Teil ist, die Berechtigung abzufragen. Die Aktion, die einen Benutzer erstellt, muss ihre Berechtigung kennen um sie abzufragen. Ich könnte zwar zusätzlich eine Enumeration verwenden, die alle Berechtigungen enthält, aber damit wäre die Laufzeitflexibilität des Dekorators wieder zerstört.
Deswegen meine Frage: Hat jemand schonmal etwas ähnliches implementiert? Hat jemand Tipps/Hinweise, wie man das am einfachsten lösen könnte? Kennt jemand eine coole Bibliothek, die man ohne großen Aufwand dafür verwenden kann?
Ich freue mich über jeden Kommentar, vielen Dank