Spring Boot

Erweiterte Authentifizierung und Autorisierung

Erweiterte Authentifizierung, feingranulare Autorisierung mit @PreAuthorize/@PostAuthorize, Roles, Permissions, SpEL

30 Interview-Fragen·
Senior
1

Was ist die Hauptaufgabe der UserDetailsService-Schnittstelle in Spring Security?

Antwort

UserDetailsService ist dafür verantwortlich, während der Authentifizierung Benutzerinformationen aus der Datenquelle (Datenbank, LDAP usw.) zu laden. Seine Methode loadUserByUsername() gibt ein UserDetails-Objekt zurück, das Username, Password, Roles und Authorities enthält. Spring Security verwendet diese Informationen anschließend, um die Credentials zu validieren und den SecurityContext aufzubauen.

2

Welche Annotation aktiviert die Sicherheit auf Methodenebene in Spring Security 6+?

Antwort

@EnableMethodSecurity ist die moderne Annotation in Spring Security 6+, die die Sicherheit auf Methodenebene aktiviert. Sie ersetzt die alte @EnableGlobalMethodSecurity und aktiviert standardmäßig @PreAuthorize, @PostAuthorize und @Secured. Sie verwendet eine auf AOP-Proxies basierende Konfiguration, um Methodenaufrufe abzufangen und die Autorisierungen zu prüfen.

3

Wann prüft die @PreAuthorize-Annotation die Autorisierungen?

Antwort

@PreAuthorize prüft die Autorisierungen VOR der Methodenausführung. Wenn die SpEL-Bedingung false zurückgibt, wird eine AccessDeniedException ausgelöst und die Methode wird nie ausgeführt. Dadurch wird der Zugriff auf nicht autorisierte Ressourcen von Anfang an verhindert. Im Gegensatz dazu prüft @PostAuthorize nach der Ausführung, was nützlich ist, um Ergebnisse abhängig vom Benutzer zu filtern.

4

Was ist der Hauptunterschied zwischen hasRole() und hasAuthority() in Spring Security?

5

Wie implementiert man einen benutzerdefinierten UserDetailsService, der Benutzer aus einer Datenbank lädt?

+27 Interview-Fragen

Meistere Spring Boot für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten