Besitzer von Ressource

Spitfire777

Bekanntes Mitglied
Hi,

für meine Applikationsschicht suche ich eine Möglichkeit mit möglichst wenig Overhead und Wiederverwendbarkeit dafür zu sorgen, dass z.B. ein Kunde nur seine eigenen Bestellungen sehen darf (eben die, die er mal aufgegeben hat).

Jetzt will ich eben nicht in jede Methode einen extra Methodenaufruf einbauen, um das zu überprüfen. Viel lieber würde ich das mittels Annotationen prüfen.

Gibt es dafür bereits etwas fertiges?

Ansonsten hätte ich mir etwas mit einem Interceptor überlegt, mit einer Annotation in dieser art:
Java:
@RolesAllowed({ "admin", "employee", "customer" })
@OwnerPrivilegesNecessary("customer") // Meine Idee
public List<Orders> getOrdersByCustomerId(Long customerId) { ... }

Beim Aufruf wird dann der Parameter mit dem Principal in Verbindung gebracht und entsprechend die Rechte geprüft.
 
Zuletzt bearbeitet:

FArt

Top Contributor
In der Regel muss man da keine besonderen Klimmzüge machen, weil das Datenmodell das hergibt. Eine Bestellung ist doch einem Kunden zugeordnet.

Ich sehe das Problem nicht...

[OT] möglichst wenig Overhead und möglichst wenig Wiederverwendbarkeit ? ;-) [/OT]
 

Spitfire777

Bekanntes Mitglied
Ja, der Kunde ist im Datenmodell einer Bestellung selbstverständlich hinterlegt. Nur muss das ganze ja überprüft werden, ob der Principal auch der Kunde der Bestellung ist.

Habs jetzt mit einem Interceptor umgesetzt, funzt.
 

Neue Themen


Oben