Основи Spring Security
Spring Security, автентифікація, авторизація, SecurityFilterChain, UserDetailsService, PasswordEncoder
1Що таке Spring Security?
Що таке Spring Security?
Відповідь
Spring Security — це фреймворк безпеки для застосунків Spring, який надає функції автентифікації та авторизації. Він захищає застосунки від поширених атак (CSRF, XSS, session fixation) і пропонує інтеграцію з різними механізмами автентифікації (form login, HTTP Basic, OAuth2, JWT). Фреймворк використовує ланцюжок фільтрів (Security Filter Chain) для перехоплення та обробки HTTP-запитів до того, як вони досягнуть контролерів.
2Яка різниця між автентифікацією та авторизацією у Spring Security?
Яка різниця між автентифікацією та авторизацією у Spring Security?
Відповідь
Автентифікація перевіряє особу користувача (хто ти?), зазвичай через username/password, тоді як авторизація перевіряє дозволи (що ти можеш робити?). Автентифікація відбувається першою і створює SecurityContext з інформацією про користувача. Потім авторизація використовує цю інформацію, щоб вирішити, чи може користувач отримати доступ до певного ресурсу. Наприклад, користувач може бути успішно автентифікований, але не авторизований для доступу до /admin, якщо його роль USER, а не ADMIN.
3Що таке SecurityContext у Spring Security?
Що таке SecurityContext у Spring Security?
Відповідь
SecurityContext — це об'єкт, який містить інформацію про безпеку поточного автентифікованого користувача, переважно об'єкт Authentication. Він зберігається у SecurityContextHolder і доступний упродовж усієї обробки запиту. Після успішної автентифікації Spring Security створює SecurityContext, що містить Authentication з даними користувача (username, authorities, credentials). Цей контекст дозволяє застосунку перевірити, хто є поточним користувачем і які в нього дозволи.
Як SecurityContextHolder зберігає SecurityContext за замовчуванням?
Яка роль інтерфейсу UserDetails у Spring Security?
+22 питань зі співбесід
Інші теми співбесід 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 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 та симуляторів співбесід.
Почни безкоштовно