0 Tage Serie
java / beginner
Snippet

Zugriffsbeschränkung von Endpunkten mit PreAuthorize

Die Verwendung der Annotation @PreAuthorize von Spring Security ermöglicht die Auswertung von Autorisierungsausdrücken vor dem Methodenaufruf, sodass nur Benutzer mit der erforderlichen Rolle fortfahren können.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
@RestController
@RequestMapping("/api/admin")
public class AdminController {
@PreAuthorize("hasRole('ADMIN')")
@DeleteMapping("/users/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
return ResponseEntity.noContent().build();
}
}
spring
Erklärung
1
@PreAuthorize("hasRole('ADMIN')")
Wertet einen SpEL-Ausdruck aus, um sicherzustellen, dass der authentifizierte Benutzer vor Methodenausführung die ADMIN-Berechtigung besitzt.
2
@DeleteMapping("/users/{id}")
Verknüpft eingehende HTTP-DELETE-Anfragen mit einer dynamischen Pfadvariable mit dieser Handler-Methode.
3
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
Definiert die Methodensignatur und bindet die URL-Template-Variable {id} an den Methodenparameter.
4
return ResponseEntity.noContent().build();
Gibt den Statuscode HTTP 204 No Content zurück, was eine erfolgreiche Löschung ohne Antwortkörper anzeigt.