Розширена автентифікація та авторизація
Розширена автентифікація, детальна авторизація з @PreAuthorize/@PostAuthorize, roles, permissions, SpEL
1Яка основна роль інтерфейсу UserDetailsService у Spring Security?
Яка основна роль інтерфейсу UserDetailsService у Spring Security?
Відповідь
UserDetailsService відповідає за завантаження інформації про користувача з джерела даних (база даних, LDAP тощо) під час автентифікації. Його метод loadUserByUsername() повертає об'єкт UserDetails, що містить username, password, roles та authorities. Потім Spring Security використовує цю інформацію для перевірки credentials і побудови SecurityContext.
2Яка анотація вмикає безпеку на рівні методів у Spring Security 6+?
Яка анотація вмикає безпеку на рівні методів у Spring Security 6+?
Відповідь
@EnableMethodSecurity — це сучасна анотація у Spring Security 6+, яка вмикає безпеку на рівні методів. Вона замінює стару @EnableGlobalMethodSecurity і за замовчуванням вмикає @PreAuthorize, @PostAuthorize та @Secured. Вона використовує конфігурацію на основі AOP-проксі для перехоплення викликів методів і перевірки авторизацій.
3У який момент анотація @PreAuthorize перевіряє авторизації?
У який момент анотація @PreAuthorize перевіряє авторизації?
Відповідь
@PreAuthorize перевіряє авторизації ПЕРЕД виконанням методу. Якщо умова SpEL повертає false, виникає AccessDeniedException, і метод ніколи не виконується. Це запобігає доступу до неавторизованих ресурсів від самого початку. На противагу цьому, @PostAuthorize перевіряє після виконання, що корисно для фільтрації результатів залежно від користувача.
Яка основна різниця між hasRole() та hasAuthority() у Spring Security?
Як реалізувати власний UserDetailsService, який завантажує користувачів із бази даних?
+27 питань зі співбесід
Інші теми співбесід Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Логування за допомогою SLF4J та Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Обробка винятків
Bean Validation
Основи Spring Data JPA
Сутності JPA та зв'язки
Запити JPA
Spring Data Repositories
Основи Spring Security
Spring Boot Actuator
Модульне тестування з JUnit та Mockito
Тестування Spring Boot
Profiles та Environment
RestTemplate і WebClient
Async і Scheduling
Кешування зі Spring
Spring WebFlux (Reactive)
Транзакції Spring
JWT та stateless-безпека
OAuth2 та Authorization Server
Spring Boot і Docker
Microservices зі Spring
Spring Cloud Config
Оптимізація продуктивності
GraalVM Native Images
Опануй Spring Boot для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно