java / intermediate
Snippet
Sicherheit auf Methodenebene mit @PreAuthorize
@PreAuthorize ermöglicht eine feingliedrige Zugriffskontrolle mittels Spring Expression Language (SpEL). Sie können Methoden basierend auf Benutzerrollen einschränken oder Methodenargumente mit dem aktuell authentifizierten Benutzer vergleichen.
snippet.java
1
2
3
4
5
6
7
8
9
10
11
12
@Servicepublic class AdminService {@PreAuthorize("hasRole('ADMIN')")public void deleteSensitiveData(Long id) {// Logic to delete data}@PreAuthorize("#username == authentication.name")public void updateProfile(String username, ProfileData data) {// Logic to update profile}}
spring
Erklärung
1
hasRole('ADMIN')
SpEL-Ausdruck, der prüft, ob der authentifizierte Benutzer die Berechtigung 'ADMIN' besitzt.
2
#username == authentication.name
Vergleicht den Methodenparameter 'username' mit dem Namen des aktuell angemeldeten Benutzers.
3
@PreAuthorize
Annotation, die eine Sicherheitsprüfung auslöst, bevor die Methode tatsächlich ausgeführt wird.