Cơ bản về Spring Security
Spring Security, xác thực, phân quyền, SecurityFilterChain, UserDetailsService, PasswordEncoder
1Spring Security là gì?
Spring Security là gì?
Câu trả lời
Spring Security là một framework bảo mật cho các ứng dụng Spring, cung cấp các tính năng xác thực và phân quyền. Nó bảo vệ ứng dụng khỏi các cuộc tấn công phổ biến (CSRF, XSS, session fixation) và cung cấp khả năng tích hợp với nhiều cơ chế xác thực khác nhau (form login, HTTP Basic, OAuth2, JWT). Framework sử dụng một chuỗi filter (Security Filter Chain) để chặn và xử lý các request HTTP trước khi chúng đến controller.
2Sự khác biệt giữa xác thực và phân quyền trong Spring Security là gì?
Sự khác biệt giữa xác thực và phân quyền trong Spring Security là gì?
Câu trả lời
Xác thực kiểm tra danh tính của người dùng (bạn là ai?), thường thông qua username/password, trong khi phân quyền kiểm tra các quyền (bạn được làm gì?). Xác thực diễn ra trước và tạo ra một SecurityContext chứa thông tin người dùng. Sau đó phân quyền sử dụng thông tin này để quyết định xem người dùng có thể truy cập một tài nguyên cụ thể hay không. Ví dụ, một người dùng có thể được xác thực thành công nhưng không được phân quyền truy cập /admin nếu vai trò của họ là USER chứ không phải ADMIN.
3SecurityContext trong Spring Security là gì?
SecurityContext trong Spring Security là gì?
Câu trả lời
SecurityContext là một đối tượng chứa thông tin bảo mật của người dùng hiện đang được xác thực, chủ yếu là đối tượng Authentication. Nó được lưu trữ trong SecurityContextHolder và có thể truy cập trong suốt quá trình xử lý yêu cầu. Sau khi xác thực thành công, Spring Security tạo ra một SecurityContext chứa một Authentication với các chi tiết của người dùng (username, authorities, credentials). Bối cảnh này cho phép ứng dụng kiểm tra người dùng hiện tại là ai và họ có những quyền gì.
SecurityContextHolder lưu trữ SecurityContext theo mặc định như thế nào?
Vai trò của giao diện UserDetails trong Spring Security là gì?
+22 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Spring Boot khác
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging với SLF4J và Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Xử lý ngoại lệ
Bean Validation
Kiến thức cơ bản về Spring Data JPA
Thực thể JPA & Quan hệ
Truy vấn JPA
Spring Data Repositories
Spring Boot Actuator
Kiểm thử đơn vị với JUnit & Mockito
Kiểm thử Spring Boot
Profiles và Environment
RestTemplate và WebClient
Async và Scheduling
Caching với Spring
Spring WebFlux (Reactive)
Giao dịch Spring
Xác thực và phân quyền nâng cao
JWT & Bảo mật Stateless
OAuth2 & Authorization Server
Spring Boot và Docker
Microservices với Spring
Spring Cloud Config
Tối ưu hóa hiệu năng
GraalVM Native Images
Nắm vững Spring Boot cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí