การยืนยันตัวตนและการให้สิทธิ์ขั้นสูง
การยืนยันตัวตนขั้นสูง การให้สิทธิ์แบบละเอียดด้วย @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 proxy เพื่อดักจับการเรียกเมธอดและตรวจสอบการให้สิทธิ์
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
การทำ Logging ด้วย 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
Caching ด้วย 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 และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี