z.B.Spring-Sicherheit RESTful-Pfad-basierte Rollensteuerung
/user/{userId}/* # Only user with userId and admin can access
/order/{orderId}/* # Only the order owner of orderId and admin can access
aktuelle Lösung, die @Current
Annotation ist eine maßgeschneiderte Injektion, die an die token
zum Server weitergeleitet beziehen ist. @PathVariable("user-id") UserEntity user
wird von einem Weg mit Feder Daten bekam
@PreAuthorize("#user.id == #u?.id")
public UserDTO access(@P("user") @Current UserEntity requestUser,
@P("u") @PathVariable("user-id") UserEntity user)
@PreAuthorize("#user.id == #uid && (#order == null || #order?.user?.id == #uid)")
public Message access(@Current @P("user") UserEntity user,
@PathVariable("user-id") @P("uid") Long uid,
@PathVariable("order-id") @P("order") OrderEntity order)
Wir haben zu viele Anmerkung, gibt es eine einfache Möglichkeit, um sie alle zu Config?
Versuchte
- Verwenden
.antMatchers("/user/[0-9]+/*").hasRole("ROLE_USER")
können die Benutzerprüfung anpassen. - AOP, zu kompliziert, kann nicht auf URL basieren.
Vielleicht ist dies nur machbar. – wener
@wener dies ist der Ansatz, den ich normalerweise auf meine Projekte anwende. Vielleicht gibt es bessere Wege, um das zu erreichen, was Sie wollen, aber ich finde diese Methode sehr gut lesbar und effektiv. – davioooh