0 Tage Serie
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
java
1
2
3
4
5
6
7
8
9
10
11
12
@Service
public 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.