shiro授权入门程序
2017-05-18 21:55
288 查看
先写一个配置文件,模拟数据库shiro-permission.ini
编写测试程序
#用户 [users] #用户zhang的密码是123,此用户具有role1和role2两个角色 zhang=123,role1,role2 wang=123,role2 #权限 [roles] #角色role对资源user拥有什么样的权限 role1=user:create,user:update role2=user:create,user:delete role3=user:create #权限标示符号 资源:操作:实例(中间使用 :) # user:create:01 表示对user资源的01实例进行create操作 # user:create 示对用户资源进行create操作,相当于user:create:*,对所有用户资源实例进行create操作。 # user:*:01 表示对用户资源实例01进行所有操作。
编写测试程序
package com.mo.authorization; import java.util.Arrays; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; import org.junit.Test; import org.apache.shiro.mgt.SecurityManager; public class AuthorizationTest { @Test public void test1(){ //创建securityManager工厂,通过ini配置文件创建securityManager Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro-permission.ini"); //通过factory工厂,创建securityManager SecurityManager securityManager = factory.getInstance(); //将securityManager设置当前的运行环境中 SecurityUtils.setSecurityManager(securityManager); //从SecurityUtils里面创建一个subject,subject就是主体 Subject subject = SecurityUtils.getSubject(); //在认证提价前,准备token,token就是一个令牌,用户和密码 UsernamePasswordToken token = new UsernamePasswordToken("zhang","123"); //执行认证的提交 try { //执行认证的提交,认证不通过就会抛出异常 subject.login(token); } catch (AuthenticationException e) { e.printStackTrace(); } //这是认证是否通过,返回的是boolean类型的数据类型 boolean isAuthenticated = subject.isAuthenticated(); System.out.println("是否认证通过"+isAuthenticated); //认证成功进行授权 //基于角色的授权,这个subject有没有这个权限,返回的是boolean数据类型 boolean ishasRole = subject.hasRole("role1"); System.out.println("单个角色判断" + ishasRole); boolean isAllhasRole = subject.hasAllRoles(Arrays.asList("role1","role2")); System.out.println("多个角色判断" + isAllhasRole); //基于资源的授权,这个subject有没有这个资源的访问权限,返回的是boolean数据类型 boolean ishasPermitted = subject.isPermitted("user:create"); System.out.println("单个权限判断"+ishasPermitted); boolean ishasAllPermitted = subject.isPermittedAll("user:create","user:update"); System.out.println("多个权限判断"+ishasAllPermitted); } }
相关文章推荐
- shiro授权入门程序
- Shiro入门-授权初步
- Shiro 学习记录 Shiro 入门程序
- Shiro入门10:自定义Realm进行授权
- shiro学习(一)---认证入门程序
- 32、shiro框架入门3.授权
- 【shiro】入门程序
- Shiro入门—授权
- Shiro整合Spring实现登录验证和授权之入门
- Shiro入门之一 -------- Shiro权限认证与授权
- shiro认证入门程序
- Shiro 入门到毁灭(第五步) [realm自定义授权]
- Shiro入门2:权限管理入门,用户认证、授权
- JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权
- 32、shiro框架入门3.授权
- Shiro入门之授权与认证
- Shiro 入门到毁灭(第四步) [授权入门]
- Shiro入门9:Shiro授权流程和三种授权方式和权限标识符规则
- shiro入门级小程序
- shiro身份验证授权入门