8.11.13 下午 第78天上課
Authentication:身份認證/登入,驗證使用者是不是擁有相應的身份;
Authorization:授權,即許可權驗證,驗證某個已認證的使用者是否擁有某個許可權;即判斷使用者是否能做事情,常見的如:驗證某個使用者是否擁有某個角色。或者細粒度的驗證某個使用者對某個資源是否具有某個許可權;
Session Manager:會話管理,即使用者登入後就是一次會話,在沒有退出之前,它的所有資訊都在會話中;會話可以是普通JavaSE環境的,也可以是如Web環境的;
Cryptography:加密,保護資料的安全性,如密碼加密儲存到資料庫,而不是明文儲存;
Web Support:Web支援,可以非常容易的整合到Web環境;
Caching:快取,比如使用者登入後,其使用者資訊、擁有的角色/許可權不必每次去查,這樣可以提高效率;
Concurrency:shiro支援多執行緒應用的併發驗證,即如在一個執行緒中開啟另一個執行緒,能把許可權自動傳播過去;
Testing:提供測試支援;
Run As:允許一個使用者假裝為另一個使用者(如果他們允許)的身份進行訪問;
Remember Me:記住我,這個是非常常見的功能,即一次登入後,下次再來的話不用登入了
hasRole 驗證當前使用者是否屬於該角色
lacksRole 與hasRole標籤邏輯相反,當用戶不屬於該角色時驗證通過
hasAnyRole 驗證當前使用者是否屬於以下任意一個角色。
hasPermission 驗證當前使用者是否擁有指定許可權
lacksPermission 與hasPermission標籤邏輯相反,當前使用者沒有制定許可權時,驗證通過。、
登出功能
Subject subject=SecurityUtils.getSubject();
subject.logout();//呼叫登出功能 可以清除cookie內容
會話功能
可以使用subject獲取Session
Session session=SecurityUtils.getSubject().getSession();
session.setAttribute("name", "459");//存入你想存放在Session的資料