譯者:劉曉日 html
Apache Shiro是一個功能強大、靈活的,開源的安全框架。它能夠很好的處理認證、受權、企業會話管理和加密。 web
Apache Shiro的首要目標是易於理解與使用。安全一般很複雜,甚至讓人感到很痛苦,可是Shiro卻不是這樣子的。一個好的安全框架應該屏蔽複雜性,向外暴露簡單、直觀的API,來簡化開發人員實現應用程序安全所花費的時間和精力。 算法
那Shiro能作什麼呢? apache
驗證用戶身份 api
用戶訪問權限認證,好比: 緩存
用戶是否擁有一個安全的角色。 安全
用戶是否被授予完成某個操做的權限 服務器
在非web或EJB容器的環境下能夠任意使用Session API session
能夠響應認證、訪問控制,或者Session生命週期中發生的事件 多線程
可將一個或以上用戶安全數據源數據組合成一個複合的用戶視圖
單點登陸(SSO)功能
提供‘Remember Me’服務
Shiro致力在全部應用環境下實現上述功能,小到命令行應用程序,大到企業應用中,並且不須要藉助第三方框架、容器、應用服務器等。固然Shiro的目的是儘可能的融入到這樣的應用環境中去,但也能夠在它們以外的任何環境下使用。
Apache Shiro功能
Apache Shiro是一個全面的、蘊含豐富功能的安全框架。下圖爲描述Shiro功能的框架圖:
認證、受權、會話管理、加密被Shiro框架的開發團隊稱之爲應用安全的四大基石。那麼就讓咱們來看看它們吧:
認證:用戶身份識別,一般被稱爲用戶登陸。
受權:訪問控制。好比某個用戶是否具備某個操做的使用權限。
會話管理:管理非web或EJB應用中的會話。
加密:在對數據源使用加密算法加密的同時,保證易於使用。
還有其餘的功能來支持和增強這些不一樣應用環境下安全領域的關注點。特別是對如下的功能支持:
Web支持:Shiro提供的web支持api,能夠很輕鬆的保護web應用程序的安全。
緩存:緩存是Apache Shiro保證安全操做快速、高效的重要手段。
併發:Apache Shiro支持多線程應用程序的併發特性。
測試:支持單元測試和集成測試,確保代碼和預想的同樣安全。
"Run As":這個功能容許用戶「冒名頂替」其餘用戶(在許可的前提下)。
"Remember Me":在session中記錄用戶的標識,只有在未獲取到信息的狀況下才須要登陸。