Spring Boot

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

30 câu hỏi phỏng vấn·
Senior
1

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.

2

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.

3

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.

4

Sự khác biệt chính giữa hasRole() và hasAuthority() trong Spring Security là gì?

5

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

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í