shiro的相關概念

補一篇shiro相關的概念

 

shiro是一個強大靈活的開源安全框架,可以乾淨利落的處理認證、授權、企業會話管理和加密。

shiro的首要目標是簡單和易於理解。安全有時候是非常複雜令人頭疼的問題,shiro隱藏了複雜

的細節,暴露了簡介直觀的API來簡化開發者使他們的應用程序更安全的努力。

 

shiro可以做一下事情:

 

進行用戶認證

執行訪問控制

單點登錄

Remember Me服務

 

安全的一些概念:身份認證、授權、會話管理、加密被認爲是構成應用安全的基礎要素。

身份認證,就是驗證用戶身份,典型的“登錄”過程就是身份認證的過程。

授權:也就是訪問控制(ac),也即某用戶可以可以使用應用的哪些功能?

會議管理:管理用戶特定的會話,即使在非Web或EJB應用。

加密:保持數據的安全使用的加密算法,同時仍然易於使用。

對於Session,在WEB應用中它基於HttpSession,而一般應用中默認使用企業會話管理。shiro的Session

用起來和HttpSession差不多,並且使用它不需要Http環境。

 

在最高的層次上講,shiro主要有三個主要的概念,它們分別是Subject、SecurityManager和Realms。

 

shiro使用Subject這一概念來描述當前用戶,‘User’這個詞通常隱含的指一個人,但是Subject可以是一個

人也可以代表第三方服務,守護賬戶,定時作業,或者其他類似的與軟件交互的事物。

 

所有Subject實例都與一個SecurityManager綁定,當你和一個Subject交互時,所有交互都會通過SecurityManager

轉換爲特定Subject的交互。

 

SecurityManager是shiro架構的核心,它扮演‘保護傘’對象的角色,與其他內部安全組件一起構成對象圖的核心。

 

SecurityManager及其內貿部對象圖一旦被應用配置,它基本上就被放在一邊不再被程序員使用了,

開發人員基本上總是在與Subject的相關API打交道。它在幕後支持Subject的安全操作。

 

Realms在shiro與你的應用程序的安全數據之間充當着橋樑或者說是連接器的作用。

從這種意義上講,Reaml就是一個特定的安全DAO,它爲shiro提供所需的數據。

在配置shiro時,你必須爲認證、授權指定至少一個可用的Realm。

 

shiro提供了現成的Realm連接到LDAP、關係數據庫(JDBC)、ini和properties文件等。

用戶可以使用自己的Realm

 

shiro的[urls]規則,例如

[urls]

/index.html = anon

/user/** = authc

/admin/** = authc, roles[administrator]

上面的3個URL分別表示根目錄下的index.html可以匿名訪問,user目錄下的所有資源

都需要經過認證後纔可訪問,admin目錄下的所有資源必須經過認證,並且需要管理員角色

才能訪問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章