本章講解shiro授權的相關知識
1.概念
authorization:授權,也就是授予使用者訪問某些資源的許可權。
前提在於需要使用者通過登入驗證才可以進行授權。
許可權(permit):表示某些功能,如按鈕的顯示,選單的訪問,資料的crud
角色(role): 許可權的集合,比如管理員角色,其擁有訪問系統全部選單的許可權
2.shiro中使用者的授權流程
3.實現步驟
我們仍然使用之前做登陸驗證時候的**。
1)編寫shiro.ini檔案
[main]
[users]
zhangsan = 1234,role1
lisi = 5678
[roles]
role1 = permit1,permit2
注意:上面的配置檔案中,users配置的為使用者名稱 = 密碼,角色1,角色2...
roles配置為角色 = 許可權1,許可權2...
2)編碼實現
package cn.edu.ccut.test;
import org.apache.shiro.securityutils;
import org.apache.shiro.authc.authenticationexception;
import org.apache.shiro.authc.usernamepasswordtoken;
import org.apache.shiro.config.inisecuritymanage***ctory;
import org.apache.shiro.subject.subject;
import org.apache.shiro.util.factory;
import org.apache.shiro.mgt.securitymanager;
/** * @auther:jwang
* @date:2019/5/8
* @description:cn.edu.ccut.test
* @version 1.0
**/public class authentication
}}catch (authenticationexception e)}}
執行結果如下:
注意:這裡我們使用了hasrole方法來判斷使用者是否擁有某角色。
角色:boolean hasrole(string roleidentifier)
判斷使用者是否擁有某角色,true表示擁有,false則沒有
boolean hasroles(listroleidentifiers);
判斷使用者是否擁有某些角色,返回布林陣列
boolean hasallroles(collectionroleidentifiers);
判斷使用者是否擁有某些角色,全部滿足返回true,反之false
void checkrole(string roleidentifier) throws authorizationexception
判斷使用者是否擁有某角色,沒有丟擲異常
void checkroles(collectionroleidentifiers) throws authorizationexception;
判斷使用者是否擁有全部角色,沒有丟擲異常
void checkroles(string... roleidentifiers) throws authorizationexception;
判斷使用者是否擁有全部角色,沒有丟擲異常
許可權:boolean ispermitted(string permission);
判斷使用者是否擁有某許可權,true表示擁有,false則沒有
boolean ispermitted(string... permissions);
判斷使用者是否擁有某些許可權,返回布林陣列
boolean ispermittedall(string... permissions);
判斷使用者是否擁有全部許可權,有返回true,反之false
void checkpermission(string permission) throws authorizationexception;
判斷使用者是否擁有某許可權,沒有丟擲異常
void checkpermissions(string... permissions) throws authorizationexception;
判斷使用者是否擁有全部許可權,沒有丟擲異常
Shiro快速入門 5 授權
shiro授權的操作主要分為兩個步驟 1 匹配登入使用者的角色,並將許可權賦予當前使用者所建立的subject。2 訪問某一資源時,從當前使用者subject中取得許可權並驗證是否可以訪問這個資源。shiro本身並不提供許可權管理的機制,許可權的管理需要我們自己進行維護。常見的做法是在資料庫建立使用...
Shiro實戰(三)Shiro授權(上)
在上篇shiro認證原理的最後,我們介紹了inirealm是如何進行認證,本篇我們將介紹shiro授權過程中的幾個概念以及shiro程式設計式的授權操作,並通過常用的使用者 角色 許可權授權模式來加深理解授權的過程。1 授權三大要素 permissions permissions是shiro安全框架...
shiro下篇授權
先寫個例子看一下 1 在realm中進行授權 1.2使用者請求的這個方法必須要有 quanxian 這個授權,才可以訪問。這裡給予當前登陸使用者 quanxian 這個訪問許可權。加上之後可以測試一下。2 使用shiro的方法註解方式許可權控制 第一步 在spring配置檔案中開啟shiro註解支援...