พื้นฐาน Spring Security
Spring Security, การยืนยันตัวตน, การให้สิทธิ์, SecurityFilterChain, UserDetailsService, PasswordEncoder
1Spring Security คืออะไร?
Spring Security คืออะไร?
คำตอบ
Spring Security เป็นเฟรมเวิร์กด้านความปลอดภัยสำหรับแอปพลิเคชัน Spring ที่ให้ฟีเจอร์การยืนยันตัวตนและการให้สิทธิ์ มันปกป้องแอปพลิเคชันจากการโจมตีทั่วไป (CSRF, XSS, session fixation) และมีการผสานรวมกับกลไกการยืนยันตัวตนที่หลากหลาย (form login, HTTP Basic, OAuth2, JWT) เฟรมเวิร์กใช้ห่วงโซ่ฟิลเตอร์ (Security Filter Chain) เพื่อดักจับและประมวลผลคำขอ HTTP ก่อนที่จะไปถึง controller
2ความแตกต่างระหว่างการยืนยันตัวตนและการให้สิทธิ์ใน Spring Security คืออะไร?
ความแตกต่างระหว่างการยืนยันตัวตนและการให้สิทธิ์ใน Spring Security คืออะไร?
คำตอบ
การยืนยันตัวตนจะตรวจสอบตัวตนของผู้ใช้ (คุณเป็นใคร?) โดยทั่วไปผ่าน username/password ในขณะที่การให้สิทธิ์จะตรวจสอบสิทธิ์ (คุณทำอะไรได้บ้าง?) การยืนยันตัวตนเกิดขึ้นก่อนและสร้าง SecurityContext ที่มีข้อมูลของผู้ใช้ จากนั้นการให้สิทธิ์จะใช้ข้อมูลนี้เพื่อตัดสินว่าผู้ใช้สามารถเข้าถึงทรัพยากรเฉพาะได้หรือไม่ ตัวอย่างเช่น ผู้ใช้อาจยืนยันตัวตนสำเร็จแต่ไม่ได้รับสิทธิ์ให้เข้าถึง /admin หากบทบาทของเขาคือ USER ไม่ใช่ ADMIN
3SecurityContext ใน 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
การทำ 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 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 และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี