Ok,
mein erstes EJB3 Projekt mit Benutzerverwaltung: Ich programmiere eine Anwendung mit Java Applikationsclients und EJB3. Diese Anwendung benötigt - sowohl Client- als auch Serverseitig - eine Benutzerverwaltung und ein Rollenbasiertes Sicherheitskonzept. Auf der Serverseite ließe sich das ja über deklarative Security realisieren - das würde aber vorraussetzen, dass meine Kunden neue Benutzer und Rollen direkt im Applikationsserver (JBoss) anlegen - diese Anforderung scheint mir gewagt. Und auf Clientseite funktioniert das ganze dann auch nicht, oder?
Ich weiß, das JBoss mittels JAAS die Authentifizierung erledigen lassen kann, aber kann man mittels JAAS (oder mittels EJB3-Security allgemein) im Applikationsclient Anwendungsfälle erledigen wie:
- Hat der Benutzer nicht die Berechtigung zu suchen, soll das Suchfeld ausgeblendet werden,
- Hat der Benutzer kein Schreibrecht für Datensatz XYZ, soll die entsprechende Maske nicht aufrufbar sein,
- Plugins, für die dem Benutzer kein Zugriff erteilt wurde, sollen in der Navigation nicht aufgeführt werden?
Als Alternative bleibt eigentlich nur das Schreiben einer eigenen Sicherheitsarchitektur - was wiederum den Code weniger straight-forward und unleserlicher macht. Ausserdem ist meine eigene Architektur sicher leichter angreifbar als die eingebauten Mechanismen ...
Stellt sich also die Frage: Was würdet ihr in dieser Lage tun? Ist es sinnvoll, einen eingebauten Mechanismus zu umgehen?
mpG
Tobias
Edit: Titel geändert, weil das ganze nicht nur mit EJB3-Security zu tun hat.
mein erstes EJB3 Projekt mit Benutzerverwaltung: Ich programmiere eine Anwendung mit Java Applikationsclients und EJB3. Diese Anwendung benötigt - sowohl Client- als auch Serverseitig - eine Benutzerverwaltung und ein Rollenbasiertes Sicherheitskonzept. Auf der Serverseite ließe sich das ja über deklarative Security realisieren - das würde aber vorraussetzen, dass meine Kunden neue Benutzer und Rollen direkt im Applikationsserver (JBoss) anlegen - diese Anforderung scheint mir gewagt. Und auf Clientseite funktioniert das ganze dann auch nicht, oder?
Ich weiß, das JBoss mittels JAAS die Authentifizierung erledigen lassen kann, aber kann man mittels JAAS (oder mittels EJB3-Security allgemein) im Applikationsclient Anwendungsfälle erledigen wie:
- Hat der Benutzer nicht die Berechtigung zu suchen, soll das Suchfeld ausgeblendet werden,
- Hat der Benutzer kein Schreibrecht für Datensatz XYZ, soll die entsprechende Maske nicht aufrufbar sein,
- Plugins, für die dem Benutzer kein Zugriff erteilt wurde, sollen in der Navigation nicht aufgeführt werden?
Als Alternative bleibt eigentlich nur das Schreiben einer eigenen Sicherheitsarchitektur - was wiederum den Code weniger straight-forward und unleserlicher macht. Ausserdem ist meine eigene Architektur sicher leichter angreifbar als die eingebauten Mechanismen ...
Stellt sich also die Frage: Was würdet ihr in dieser Lage tun? Ist es sinnvoll, einen eingebauten Mechanismus zu umgehen?
mpG
Tobias
Edit: Titel geändert, weil das ganze nicht nur mit EJB3-Security zu tun hat.