Spring Security是一個強大的和高度可定製的身份驗證和訪問控制框架,它的前身是 Acegi Security。Spring Security着重於爲Java應用程序提供身份驗證和受權。提供了一組能夠在Spring應用上下文中配置的Bean,充分利用了Spring IoC和AOP(面向切面編程)功能,爲應用系統提供聲明式的安全訪問控制功能,減小了爲企業系統安全控制編寫大量重複代碼的工做。git
SecurityContextHolder用於存儲安全上下文(security context)的信息。當前操做的用戶是誰,該用戶是否已經被認證,他擁有哪些角色權限,這些都被保存在SecurityContextHolder中。SecurityContextHolder默認使用ThreadLocal 策略來存儲認證信息。看到ThreadLocal 也就意味着,這是一種與線程綁定的策略。Spring Security在用戶登陸時自動綁定認證信息到當前線程,在用戶退出時,自動清除當前線程的認證信息。但這一切的前提,是你在web場景下使用Spring Security。github
Authentication在spring security中是最高級別的身份/認證的抽象。由這個頂級接口,咱們能夠獲得用戶擁有的權限信息列表,密碼,用戶細節信息,用戶身份信息,認證信息。web
AuthenticationManager(接口)是認證相關的核心接口,也是發起認證的出發點spring
認證具體實現數據庫
用於訪問控制的,它決定用戶是否能夠訪問某個資源,實現這個接口能夠定製咱們本身的受權邏輯。編程
投票器,在受權的時經過投票的方式來決定用戶是否能夠訪問,這裏涉及到投票規則。安全
負責從特定的地方(一般是數據庫)加載用戶信息框架
表明用戶信息,即主體,至關於Shiro中的Subject。User是它的一個實現。ide
未完待續...學習