Erweiterte Authentifizierung und Autorisierung
Erweiterte Authentifizierung, feingranulare Autorisierung mit @PreAuthorize/@PostAuthorize, Roles, Permissions, SpEL
1Was ist die Hauptaufgabe der UserDetailsService-Schnittstelle in Spring Security?
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.
2Welche Annotation aktiviert die Sicherheit auf Methodenebene in Spring Security 6+?
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.
3Wann prüft die @PreAuthorize-Annotation die Autorisierungen?
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.
Was ist der Hauptunterschied zwischen hasRole() und hasAuthority() in Spring Security?
Wie implementiert man einen benutzerdefinierten UserDetailsService, der Benutzer aus einer Datenbank lädt?
+27 Interview-Fragen
Weitere Spring Boot-Interviewthemen
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging mit SLF4J und Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Ausnahmebehandlung
Bean Validation
Spring Data JPA Grundlagen
JPA-Entitäten und Beziehungen
JPA-Abfragen
Spring Data Repositories
Spring Security Grundlagen
Spring Boot Actuator
Unit-Tests mit JUnit & Mockito
Spring Boot Testing
Profiles und Environment
RestTemplate und WebClient
Async & Scheduling
Caching mit Spring
Spring WebFlux (Reactive)
Spring-Transaktionen
JWT & Stateless-Sicherheit
OAuth2 & Authorization Server
Spring Boot und Docker
Microservices mit Spring
Spring Cloud Config
Performance-Optimierung
GraalVM Native Images
Meistere Spring Boot für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten