Shiro授权过程和认证过程相似:

项目结构:

package com.shiro.shiroframe;

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.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; public class ShiroAuthorizerTest {
//realm,暂时用来存储我们假造的用户信息
SimpleAccountRealm simpleAccountRealm=new SimpleAccountRealm();
@BeforeEach
public void setUserMsg(){
//添加一个用户信息并设置角色为admin
simpleAccountRealm.addAccount("houru","miyue","admin","user");//设置该用户既是管理员又是普通用户
}
@Test
public void ShiroAuthorizerTest() {
//构建SecurityManager环境
DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
//SecurityManager环境下设置realm
defaultSecurityManager.setRealm(simpleAccountRealm);
//SecurityUtils先获取SecurityManager环境
SecurityUtils.setSecurityManager(defaultSecurityManager);
//获取subject
Subject subject= SecurityUtils.getSubject();
//通过UsernamePasswordToken组织提交认证所要传递的参数
UsernamePasswordToken usernamePasswordToken=new UsernamePasswordToken("houru","miyue");
//登录认证
subject.login(usernamePasswordToken);
//打印是否认证通过:subject.isAuthenticated()
System.err.println(subject.isAuthenticated());
//权限认证
//检查当前用户是否具有admin角色权限
subject.checkRole("admin");
//检查当前用户是否具有admin,user等角色权限
subject.checkRoles("admin","user");
}
}

最新文章

  1. 【CSS进阶】伪元素的妙用--单标签之美
  2. MyBatis Like查询处理%_符号
  3. asp.net mvc 中 一种简单的 URL 重写
  4. CSS position relative absolute fixed
  5. javascript - 浏览器对象
  6. 每日一“酷”之Cookie
  7. MFC中全局变量的定义及使用
  8. ubuntu 配置ftp服务器 vsftpd
  9. 六、BeautifulSoup4------自动登录网站(手动版)
  10. 【C++笔记】explicit 指定符
  11. hdu3652 数位dp记忆化搜索
  12. docker swarm:Error response from daemon: rpc error: code = Unavailable desc = grpc: the connection is unavailable
  13. BZOJ1787 [Ahoi2008]Meet 紧急集合 LCA
  14. python list seq
  15. 在SQL Server中创建用户角色及授权
  16. 抽象语法符号ASN.1(Abstract Syntax Notation One)
  17. 20145225唐振远《网络对抗》Exp4 恶意代码分析
  18. iOS开发学习-nonatomic和atomic的区别
  19. 数据融合(data fusion)原理与方法
  20. java反射之ClassLoader

热门文章

  1. kibana报[FORBIDDEN/12/index read-only / allow delete (api)]错误
  2. MySQL查询最近一周(最近7天)数据
  3. ThinkPHP验证器验证规则编码要点
  4. 利用ab压力工具对服务器进行压力测试
  5. Librepilot-创建UAVObject及编译到飞机端和地面站端的步骤
  6. CNN实战篇-手把手教你利用开源数据进行图像识别(基于keras搭建)
  7. dedecms织梦无法保存栏目内容的解决方法
  8. [易学易懂系列|rustlang语言|零基础|快速入门|(4)|借用Borrowing]
  9. 【NOIP2012模拟10.31】掷骰子
  10. JavaScript求取水仙花数