1.maven下仅shiro框架对shiro的测试使用

1. 添加maven的 webapp java resource 等文件夹,指定文件夹地位 添加xml文件
添加依赖:shiro——all

2. resources 添加 user.ini
[users]
zs=123,admin
lisi=123,normal
[roles]
admin=user:list,user:add,user:update
normal=user:list

3. 直接创建test类
类中写:
1) 导入user.ini配置文件
2) 创建DefaultSecurityManager安全管理器
3)获取shiro核心类:subject主体
4)获取验证token(因为是测试类,直接为token赋值)
5)使用subjec的login方法进行‘认证’,和user.ini文件验证token内容是否正确。
6)使用subjec的checkeRole 和 checkePermission 为通过认证的用户‘授权’。
7)over。


4. 代码如下:

private IniRealm iniRealm=new IniRealm("classpath:user.ini");

@Test
public void test1(){
/*new一个默认安全管理器*/
DefaultSecurityManager securityManager=new DefaultSecurityManager();
/*安全管理器加载外部信息*/
securityManager.setRealm(iniRealm);
/*SecurityUtils加载安全管理器*/
SecurityUtils.setSecurityManager(securityManager);
/*Subject是shiro主体对象,通过创建获得它*/
Subject subject=SecurityUtils.getSubject();
/*token传递用户名和密码的域属性*/
UsernamePasswordToken token=new UsernamePasswordToken("aaa","123");
/*login方法会对token进行处理。主要在我们的自定义realm里面。现在只是测试shiro框架
* 所以没有配置realm,主要的属性都会去user.ini配置文件里面查找。此时使用“aaa”和“123”
* 和user.ini不同,所以会报UnknownAccountException异常。*/
subject.login(token);
/*认证通过输出这个*/
System.out.println("认证通过");
subject.checkRole("admin");
subject.checkPermission("user:list");
System.out.println("授权通过");
}

posted @ 2019-08-05 19:44  JackPinkMan  阅读(262)  评论(0编辑  收藏  举报