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.