Xác thực và phân quyền nâng cao
Xác thực nâng cao, phân quyền chi tiết với @PreAuthorize/@PostAuthorize, roles, permissions, SpEL
1Vai trò chính của interface UserDetailsService trong Spring Security là gì?
Vai trò chính của interface UserDetailsService trong Spring Security là gì?
Câu trả lời
UserDetailsService chịu trách nhiệm tải thông tin người dùng từ nguồn dữ liệu (cơ sở dữ liệu, LDAP, v.v.) trong quá trình xác thực. Phương thức loadUserByUsername() của nó trả về một đối tượng UserDetails chứa username, password, roles và authorities. Sau đó Spring Security sử dụng thông tin này để xác thực credentials và xây dựng SecurityContext.
2Annotation nào kích hoạt bảo mật ở cấp độ phương thức trong Spring Security 6+?
Annotation nào kích hoạt bảo mật ở cấp độ phương thức trong Spring Security 6+?
Câu trả lời
@EnableMethodSecurity là annotation hiện đại trong Spring Security 6+ kích hoạt bảo mật ở cấp độ phương thức. Nó thay thế @EnableGlobalMethodSecurity cũ và mặc định kích hoạt @PreAuthorize, @PostAuthorize và @Secured. Nó sử dụng cấu hình dựa trên proxy AOP để chặn các lời gọi phương thức và kiểm tra phân quyền.
3Annotation @PreAuthorize kiểm tra phân quyền vào thời điểm nào?
Annotation @PreAuthorize kiểm tra phân quyền vào thời điểm nào?
Câu trả lời
@PreAuthorize kiểm tra phân quyền TRƯỚC khi phương thức được thực thi. Nếu điều kiện SpEL trả về false, một AccessDeniedException sẽ được ném ra và phương thức không bao giờ được thực thi. Điều này ngăn chặn việc truy cập vào các tài nguyên không được phép ngay từ đầu. Ngược lại, @PostAuthorize kiểm tra sau khi thực thi, hữu ích cho việc lọc kết quả dựa trên người dùng.
Sự khác biệt chính giữa hasRole() và hasAuthority() trong Spring Security là gì?
Làm thế nào để triển khai một UserDetailsService tùy chỉnh tải người dùng từ cơ sở dữ liệu?
+27 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
Cơ bản về Spring Security
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
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í