首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Acegi 核心概念:認證與授權、兄弟框架比較、七劍架構

     編輯:Java 相關知識

Acegi (Spring Security 前身) 是基於 Spring 的安全框架,核心解決「認證」與「授權」兩大問題。

一、核心概念辨析

概念官方定義通俗理解
Authentication (認證)establishing a principal is who they claim to be驗證「你是誰」:帳號/密碼、憑證、Token 對號入座
Authorization (授權)deciding whether a principal is allowed to perform an action判斷「你能做什麼」:角色、權限、ACL 綁定資源

Principal:系統中執行動作的主體 (用戶、設備、外部系統)。

二、實現機制

  • Web 層:Servlet Filter 保護 URL。
  • 方法層:AOP 保護 Service/DAO 方法。
  • 域物件層:ACL (Access Control List) 保護具體物件實例。

三、兄弟框架比較

  • JAAS:Java EE 標準,配置繁瑣、粒度粗、WAR/EAR 移植性差。
  • Crowd:Atlassian 單點登入/身份管理產品,可與 Acegi 整合,彌補集中式身份管理缺口。

四、兩層核心部件

配置層 (應用面):FilterChainProxy、AuthenticationManager、AccessDecisionManager、UserDetailsService 等 Bean 組裝。

實現層 (核心面) —「七劍」:

  1. SecurityContextHolder
  2. SecurityContext
  3. HttpSessionContextIntegrationFilter
  4. Authentication
  5. GrantedAuthority
  6. UserDetails
  7. UserDetailsService

道生一 (核心思想:保護) → 一生二 (認證/授權) → 二生三 (七劍) → 三生萬物 (各種配置與擴充)。

五、理解七劍的重要性

唯有透徹七劍職責與協作,才能在複雜業務中:
• 正確實作 UserDetailsService 對接既有用戶表
• 自訂 AuthenticationProvider 支援多因子驗證
• 擴充 AccessDecisionVoter 實現動態權限
• 排查「為何這個請求被攔截/放行」

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved