java / beginner
Snippet
Methodenzugriff über Rollen mit PreAuthorize einschränken
Die @PreAuthorize-Annotation von Spring Security verwendet die Spring Expression Language (SpEL), um Autorisierungsregeln vor dem Ausführen einer Methode zu prüfen. In diesem Beispiel dürfen nur authentifizierte Benutzer mit der Rolle 'ADMIN' die Methode generateFinancialSummary aufrufen; unautorisierte Aufrufe lösen eine AccessDeniedException aus.
snippet.java
java
1
2
3
4
5
6
7
8
@Servicepublic class AdminReportService {@PreAuthorize("hasRole('ADMIN')")public Report generateFinancialSummary() {return new Report("Q1 Summary", "Confidential financial data");}}
spring
Erklärung
1
@Service
Kennzeichnet die Klasse als Spring-Service-Komponente, die vom Spring-Container verwaltet wird.
2
@PreAuthorize("hasRole('ADMIN')")
Stellt sicher, dass der aktuelle Benutzer vor der Methodenausführung über die ADMIN-Berechtigung verfügen muss.
3
public Report generateFinancialSummary() {
Deklariert die geschützte Geschäftsoperation mit Sicherheit auf Methodenebene.
4
return new Report("Q1 Summary", "Confidential financial data");
Erstellt und gibt den geschützten Bericht zurück, sobald der Zugriff gewährt wurde.