shiro授權shiro支援三種方式的授權:
1.程式設計式:通過編寫if/else授權**塊的方式完成(不推薦)
2.註解式:通過在controller方法上面註解完成(用的較多)
3.jsp標籤:在頁面上面完成(可以隱藏無許可權的東西)
shiro授權過程:
1. 授權需要繼承 authorizingrealm 類, 並實現其 dogetauthorizationinfo 方法
2. authorizingrealm 類繼承自 authenticatingrealm, 但沒有實現 authenticatingrealm 中的
dogetauthenticationinfo, 所以認證和授權只需要繼承 authorizingrealm 就可以了. 同時實現他的兩個抽象方法.
shiro許可權註解:
@requiresauthentication:表示當前的subject已經通過login進行了身份驗證,即subject.isauthenticated()返回true
@requiresuser:表示當前subject已經通過身份驗證或者通過記住我登入的
@requiresguest:表示遊客身份
@requiresroles(value="admin","user",logical=logical.and):表示當前subject需要admin和user兩個角色
@requirespermissions(value="user:a","user:b",logical=logical.or):表示當前subject需要許可權a或者b
可以通過例項工廠的方式注入許可權資源,實現資料庫配置
shiro會話
【重點】
controller裡面的httpsession一般情況下我們不允許其他層能訪問到
但是有了shiro,shiro支援在任何地方獲得session,這是乙個很重要的應用
shiro會話驗證
shiro提供會話驗證排程器
sessiondao
實現對session的增刪改查(放入資料庫)
create table sessions(
id varchar(200);
session varchar(2000);
constraint pk_sessions primary key(id);
)charset=utf8 engine=innodb
繼承enterprisecachesessiondao
protected serializable docreate(session session)
protected session doreadsession(serializable sessionid)
protected void doupdate(session session) {}
protected void dodelete(session session) {}
寫和讀session時候需要對session進行序列化和反序列化操作(因為存入資料庫的session是個物件,而不是字段)
做法:利用物件輸入輸出流進行讀寫,而物件輸入輸出流需要包裝位元組輸入輸出流
Shiro入門(六)Shiro授權
本章講解shiro授權的相關知識 1.概念 authorization 授權,也就是授予使用者訪問某些資源的許可權。前提在於需要使用者通過登入驗證才可以進行授權。許可權 permit 表示某些功能,如按鈕的顯示,選單的訪問,資料的crud 角色 role 許可權的集合,比如管理員角色,其擁有訪問系統...
shiro下篇授權
先寫個例子看一下 1 在realm中進行授權 1.2使用者請求的這個方法必須要有 quanxian 這個授權,才可以訪問。這裡給予當前登陸使用者 quanxian 這個訪問許可權。加上之後可以測試一下。2 使用shiro的方法註解方式許可權控制 第一步 在spring配置檔案中開啟shiro註解支援...
shiro認證授權
1.shiro配置類 1.1需要配置什麼?建立乙個shirofilte ctorybean物件,檢測認證 向bean中傳入securitymanager物件 沒有認證的時候應該訪問哪個url位址 setloginurl 哪些資源是可以被匿名訪問的 setfilterchaindefinitionma...