Skip to content

PlusMagi's Blog By Pitt Phunsanit

Plus emotional magic to the knowledge of logic.

  • About’s Pitt
Close Button

Java: spring-security-web (login )Java: spring-security-web (login )

2025-12-132025-12-13| phunsanitphunsanit| 0 Comment | 07:00

ในการพัฒนาแอปพลิเคชันด้วย Spring Boot และต้องการจัดการเรื่องความปลอดภัย เรามักจะเห็น Library หลัก 3 ตัวนี้ทำงานร่วมกันเสมอครับ แม้ว่าเราจะติดตั้งผ่าน spring-boot-starter-security เพียงตัวเดียว แต่เบื้องหลังมันประกอบด้วยส่วนประกอบที่ทำหน้าที่ต่างกันดังนี้ครับ


spring-security-core

นี่คือ “หัวใจ” ของระบบครับ มันประกอบด้วย API พื้นฐานและคลาสหลักที่ไม่ขึ้นตรงกับระบบ Web ทำให้สามารถนำไปใช้กับแอปพลิเคชันประเภท Desktop หรือ Method-level security ได้

  • หน้าที่หลัก:
    • Authentication: เก็บ Model ของผู้ใช้ เช่น UserDetails, GrantedAuthority
    • Access Control: จัดการการตรวจสอบสิทธิ์ผ่าน AccessDecisionManager
    • Security Context: คลาส SecurityContextHolder ที่ใช้เก็บข้อมูลผู้ใช้ที่ล็อกอินอยู่ในปัจจุบัน
  • เหมาะสำหรับ: การทำ Unit Test หรือเขียน Logic ความปลอดภัยในระดับ Service layer

spring-security-web

ตัวนี้คือส่วนที่ทำให้ Security ทำงานบน HTTP Protocol ได้ครับ หากไม่มีตัวนี้ Spring Security ก็จะไม่รู้ว่าต้องจัดการกับ Request ที่วิ่งเข้ามาทาง Browser อย่างไร

  • หน้าที่หลัก:
    • Filters: หัวใจของมันคือ “Security Filter Chain”
    • Infrastructure: จัดการเรื่องการทำ Redirect, การส่ง Error , และการจัดการ Session /Cookies
    • Firewall: คลาส HttpFirewall ที่ช่วยป้องกันการโจมตีพื้นฐานทาง URL
  • หัวใจสำคัญ: คลาส HttpSecurity ที่เราใช้กำหนดว่า URL ไหนต้องล็อกอิน หรือ URL ไหนให้ผ่านได้เลย จะทำงานอยู่ใน Module นี้ครับ

spring-security-config

ตัวนี้เปรียบเสมือน “กาว” หรือตัวเชื่อมครับ มันช่วยให้เราเขียน Code เพื่อตั้งค่า ได้ง่ายขึ้นผ่าน Syntax ที่อ่านง่าย

  • หน้าที่หลัก:
    • DSL : ช่วยให้เราเขียน http.authorizeHttpRequests (...) .formLogin (...) ได้แบบไหลลื่น
    • Annotation Support: รองรับการใช้ @EnableWebSecurity, @EnableMethodSecurity
    • XML & Java Config: เป็นส่วนที่ประมวลผลการตั้งค่าทั้งหมดเพื่อไปสร้าง Bean ต่าง ๆ ใน Core และ Web
  • ประโยชน์: ช่วยลดความซับซ้อนในการ Setup เพราะมันจะดึงเอาคลาสจาก Core และ Web มาประกอบร่างให้เราโดยอัตโนมัติ

สรุปความสัมพันธ์แบบเปรียบเทียบ

Moduleหน้าที่เปรียบเหมือน
coreนิยามว่า “ใคร” และ “ทำอะไรได้บ้าง”กฎหมายและบัตรประชาชน
webดักจับ HTTP Request และจัดการ Sessionประตูกั้นและรปภ. หน้าตึก
configวิธีการตั้งค่าระบบทั้งหมดเข้าด้วยกันคู่มือการติดตั้งและปุ่มควบคุม

คำแนะนำเพิ่มเติม: ในการใช้งานจริงกับ Spring Boot คุณเพียงแค่ระบุ Dependency spring-boot-starter-security ในไฟล์ pom.xml หรือ build.gradle เพียงที่เดียว มันจะดึงทั้ง 3 ตัวนี้มาให้พร้อมใช้งานทันทีครับ


อ่านเพิ่มเติม

  • Authentication, Authenticator, Authorization, Login
  • ระบบ Login ควรมีอะไรบ้าง
  • login แบบปลอดภัย
Read MoreRead More

Posts pagination

ก่อนหน้า 1 … 99 100 101 … 4,516 ถัดไป

Projects

  • Statement Columns Mapping Helper
  • PlusMagi Site Search
  • PlusMagi Tags Reindex
  • jQuery Plus Repeater

Recent Posts

  • Homebrew: อัปเกรด ทีละตัวอัตโนมัติบนเครื่องพื้นที่จำกัด (Low Disk Space)
  • SMR: Small Modular Reactors
  • Project Hail Mary: สองชีวิตต่างโลก กับหนึ่งภารกิจ สะเทือนจักรวาล
  • ขึ้นทางด่วนคุ้มไหม? วิธีตั้งค่า Google Maps คำนวณค่าผ่านทาง เทียบเวลาและค่าน้ำมันให้เห็นชัด ๆ
  • เลิกปวดหัวกับทางลัดมหาภัย: วิธีตั้งค่า Google Maps ให้เลือก “ทางขับง่าย” มากกว่า “เร็วกว่าแค่ 1-2 นาที”

Archives

Categories

  • .net core (16)
  • AI (52)
  • business (35)
  • Businesses (33)
  • cd (59)
  • ci (62)
  • culture (2)
  • data (5)
  • Design (160)
    • UX/UI (23)
  • devops (200)
  • devsecops (35)
  • dotnet (58)
  • envoy (2)
  • Histories (23)
  • history (2)
  • ios (4)
  • Life (1,216)
    • Books (62)
    • Cartoon (13)
    • Mindset (41)
    • Movies (36)
    • Philosophy (4)
    • Psychology (3)
    • Sci-Fi (53)
    • Tips and Tricks (67)
    • ปรัชญา (267)
    • พัฒนาตนเอง (883)
    • พุทธ (70)
    • สิ่งแวดล้อม (47)
  • mobile (1)
  • mystery (8)
  • net core (10)
  • Network (354)
    • Apache HTTP Server (19)
    • IOT (24)
    • Nginx (41)
    • Stalwart (6)
  • networking (131)
  • Operating Systems (449)
    • Unix-like (314)
      • Android (24)
        • F-Droid (5)
      • Homebrew (23)
      • iPhone (12)
      • Linux (196)
      • macOS (136)
        • OrbStack (12)
      • Oh My ZSH (4)
      • Shell Script (81)
      • SSH (15)
    • Windows (163)
      • PowerShell (28)
      • WSL (25)
  • Programming (1,718)
    • .NET (68)
      • .NET Core EF (7)
      • C# (60)
    • API (145)
      • REST (54)
      • Swagger (13)
    • Database (412)
      • DBeaver (5)
      • MariaDB (38)
      • MySql (81)
      • Oracle Database (8)
        • 10g (3)
      • PostgreSQL (30)
      • RDBMS (78)
      • SQL Server (91)
        • SSMS (10)
        • T-SQL (30)
      • SQLite (2)
    • PowerBuilder (20)
    • Python (27)
    • Rust (44)
    • System Analyst (SA) (97)
    • Testing (110)
      • Automated Testing (45)
        • Playwright (11)
    • UML (53)
    • Web (908)
      • Backend (589)
        • Golang (2)
        • Java (113)
          • Spring Boot (27)
        • Node.js (12)
        • PHP (281)
          • Laravel (60)
          • Yii (5)
      • Frontend (290)
        • CSS (28)
          • Tailwind CSS (6)
        • JavaScript (230)
          • Angular (4)
          • jQuery (70)
          • Tabulator (28)
          • Vue.js (7)
      • WordPress (28)
  • Programs (112)
    • Excel (20)
  • r (2)
  • science (10)
  • script (3)
  • SecDevOps (200)
    • CI/CD (11)
    • Docker (92)
    • GIT (61)
    • SVN (18)
  • Security (375)
  • sistema (1)
  • social (2)
  • system (376)
  • system analyst (31)
  • technology (923)
  • technologyระบบ (101)
  • technologyและระบบ (3)
  • typescript (10)
  • ui (63)
  • Uncategorized (6)
  • ux (58)
  • กฎหมาย (305)
  • การจัดการ (606)
  • การจัดการข้อมูล (351)
  • การจัดการข้อมูลและองค์ความรู้ (3)
  • การพัฒนาตนเอง (12)
  • การออกแบบ (77)
  • ข้อมูล (2)
  • คณิตศาสตร์ (31)
  • ความคิด (110)
  • ความปลอดภัย (224)
  • จริยธรรม (85)
  • จิตวิทยา (885)
  • ชีวิต (115)
  • ทั่วไป (16)
  • ธุรกิจ (622)
  • บุคคล (35)
  • บุคลากร (10)
  • บุคลิก (88)
  • ประวัติศาสตร์ (39)
  • ปัญญาประดิษฐ์ (28)
  • พฤติกรรม (168)
  • ภาษาศาสตร์คอมพิวเตอร์ (28)
  • ระบบ (358)
  • วัฒนธรรม (52)
  • วิชาการ (87)
  • วิชาการข้อมูล (64)
  • วิทยาการข้อมูล (162)
  • วิทยาการข้อมูลและภาษาศาสตร์คอมพิวเตอร์ (1)
  • วิทยาศาสตร์ (164)
  • วิทยาศาสตร์ข้อมูล (28)
  • สังคม (338)
  • สุขภาพ (210)
  • หนังสือ (2)
  • องค์ความรู้ (187)
  • ออกแบบ (18)
  • เทคโนโลยี (291)
  • เทคโนโลยีระบบ (156)
  • 기술 (1)
  • 사회 (1)
  • 시스템 (1)
  • 철학 (1)

Sirat WordPress Theme By VWThemes

Scroll Up
Go to mobile version