Shiro入門(六)Shiro授權

2021-09-22 08:04:58 字數 2552 閱讀 7183

本章講解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註解支援...