Shiro(二)——Shiro授权

本文详细介绍了使用Apache Shiro框架进行权限验证的过程。通过代码示例,展示了如何添加用户及角色,以及如何进行角色检查来验证授权是否成功。具体包括构建SecurityManager环境,主体提交认证请求,以及使用subject.checkRole和subject.checkRoles方法进行授权验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、代码

package first.ShiroTest;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.realm.SimpleAccountRealm;
import org.apache.shiro.subject.Subject;
import org.junit.Before;
import org.junit.Test;

public class AuthenticationTest {

	SimpleAccountRealm simpleAccountRealm =new SimpleAccountRealm();
	
	@Before
	public void addUser() {
		simpleAccountRealm.addAccount("mark", "123456","admin","user");
	}
	
	//Shiro授权
	@Test
	public void testAuthentication2() {
		//1、构建SecurityManager环境
		//安全管理器。即所有与安全有关的操作都会与SecurityManager交互
		DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
		defaultSecurityManager.setRealm(simpleAccountRealm);
		
		//2、主体提交认证请求
		SecurityUtils.setSecurityManager(defaultSecurityManager);
		Subject subject = SecurityUtils.getSubject();//获取主体
		UsernamePasswordToken token = new UsernamePasswordToken("mark", "123456");//提交认证
		subject.login(token);
		System.out.println("是否认证:"+subject.isAuthenticated());
		
		subject.checkRoles("admin","user");
	}
	
}

二、过程

开始add用户的时候,系统增加了admin和user两个角色

simpleAccountRealm.addAccount("mark", "123456","admin","user");

后面通过checkRole验证授权是否成功

三、授权常用方法

  1. subject.checkRole("admin");
  2. subject.checkRoles("admin","user");

 

资源下载:https://gitee.com/luozh6/ShiroTest.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值