การรับรองความถูกต้องและการอนุญาตตามบทบาทของ Spring Security ด้วย Spring Boot 3.0
สวัสดีผู้เรียน ต่อไปนี้เราจะมาเรียนรู้เกี่ยวกับการปรับใช้ความปลอดภัยของสปริงด้วยสปริงบูต Spring security ให้การพิสูจน์ตัวตน การอนุญาต และการป้องกันการโจมตีทั่วไป

การยืนยันตัวตน -การยืนยันตัวตนคือวิธีที่เรายืนยันตัวตนของผู้ใช้ที่พยายามเข้าถึงทรัพยากรเฉพาะ เมื่อดำเนินการรับรองความถูกต้องแล้ว เราจะรู้ตัวตนและสามารถดำเนินการอนุญาตได้
การอนุญาต -การอนุญาตหมายถึงการอนุญาตให้เข้าถึงทรัพยากร/url เฉพาะ
ขั้นตอนในการใช้ Spring Security
ขั้นตอนที่ 1: เพิ่มการพึ่งพา Spring Security ใน POM.XML

ขั้นตอนที่ 2: สร้างคลาสการกำหนดค่า เพิ่มวิธีการตรวจสอบสิทธิ์และการอนุญาต

@EnableWebSecurity ให้การกำหนดค่าความปลอดภัยเริ่มต้นแก่แอปพลิเคชันของเรา การรักษาความปลอดภัยเริ่มต้นเปิดใช้งานทั้งตัวกรองความปลอดภัย HTTP และเชนตัวกรองความปลอดภัยและใช้การรับรองความถูกต้องพื้นฐานกับจุดสิ้นสุดของเรา
@Configuration บอกให้ Spring Boot สแกนคลาสเพื่อหาคำจำกัดความของ bean และลงทะเบียนด้วยบริบทของแอปพลิเคชัน
ใช้เมธอด authenticateProvider() เพื่อจัดเก็บรายละเอียดผู้ใช้ทั้งหมด เช่น ชื่อผู้ใช้ รหัสผ่าน บทบาท Spring Security ประกอบด้วยคลาส DaoAuthenticationProvider ซึ่งมี userDetailsService และ passwordEncoder.passwordEncoder() ใช้เพื่อเข้ารหัสรหัสผ่านและรหัสผ่านที่เข้ารหัสจะถูกจัดเก็บไว้ในฐานข้อมูล
SecutityFilterChain() วิธีการอนุญาตทรัพยากรที่นี่
.requestMatchers("/products/welcome","/products/new").permitAll() คือการให้สิทธิ์เข้าถึงแก่ผู้ใช้ทั้งหมด ผู้ใช้รายใดก็ตามสามารถเข้าถึงสอง URL นั้นได้
requestMatchers(“/products/**”).authenticated() คือการให้สิทธิ์การเข้าถึงแก่ผู้ใช้ที่ผ่านการรับรองความถูกต้อง
ขั้นตอนที่ 3: ใช้การให้สิทธิ์ตามบทบาท

@PreAuthorize
คำอธิบายประกอบใช้เพื่อระบุนิพจน์ที่จะถูกประเมินก่อนที่เมธอดจะถูกดำเนินการ หากนิพจน์ประเมินเป็นจริง เมธอดจะถูกดำเนินการ มิฉะนั้น AccessDeniedException จะถูกส่งออกไป
เมธอดgetAllProducts()
สามารถดำเนินการได้โดยผู้ใช้ที่มีROLE_USER
บทบาท ในขณะที่ ผู้ใช้ที่มี บทบาทgetProductById()
สามารถดำเนินการเมธอดได้ROLE_ADMIN
การทดสอบการใช้งาน

เพิ่มโค้ดตัวอย่างเพื่อทดสอบการใช้งาน

หลังจากให้ข้อมูลรับรองผู้ใช้แล้ว ผู้ใช้จะสามารถเข้าถึงจุดสิ้นสุดของผู้ใช้ได้
เมื่อผู้ใช้พยายามเข้าถึงตำแหน่งข้อมูลผู้ดูแลระบบด้วยข้อมูลรับรองผู้ใช้ หน้าแสดงข้อผิดพลาดจะปรากฏขึ้น

หมายเหตุ: หากคุณต้องการโค้ด GitHub ที่ใช้งานได้ โปรดติดตามฉันและแสดงความคิดเห็น ID อีเมลของคุณ ฉันจะส่งลิงค์ซอร์สโค้ดไปยังอีเมลของคุณ
ส่วนที่ 2: การรับรองความถูกต้องของ Spring Security และการอนุญาตด้วย JWT
อ้างอิงลิงก์สำหรับ Spring Boot Concepts อื่นๆ:
บทช่วยสอน Spring AOP
บทช่วยสอนการบันทึก Spring Boot
การกำหนดค่าจากส่วนกลางใน Spring Boot
คำอธิบายประกอบไฮเบอร์เนตที่ใช้บ่อยที่สุด