您的位置:首页 > 其它

Shiro 入门到毁灭(第四步) [授权入门]

2017-03-28 14:00 323 查看
Shiro 入门到毁灭(第四步) [简单授权-角色权限与访问或资源权限]

项目结构



所需jar包与前面第二步一致故此不在给出示例

shiroAuthorization.ini配置文件

#配置用户信息
[users]
#配置用户名密码与角色 权限
#下面配置的信息是Shiro用户名的密码是123456,同时他具有admin和root两个角色权限
Shiro=123456,admin,root

#配置权限信息
[roles]
#下面配置的信息是 admin角色权限具有read和write 执行权限或者资源访问权限
admin=read,write
#root角色权限具有read和exec执行权限或资源访问权限
root=read,exec


java代码

package fetd.shiro;

import java.util.ArrayList;
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.mgt.SecurityManager;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;

public class shiroAuthorizationTest {
public static void main(String[] args) {
//以下代码就不给予注释了!有不懂的可看前面Shiro 入门到毁灭第一步
Factory<SecurityManager> fs = new IniSecurityManagerFactory("classpath:shiroAuthorization.ini");
SecurityManager sm = fs.getInstance();
SecurityUtils.setSecurityManager(sm);
Subject sj = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("Shiro", "123456");
try {
sj.login(token);
} catch (AuthenticationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//登录认证成功与否
System.out.println(sj.isAuthenticated());

//判断用户是否有单个角色权限
System.out.println(sj.hasRole("root"));
//判断用户是否有多个角色权限
System.out.println(sj.hasAllRoles(Arrays.asList("root","admin")));

//判断用户是否有单个资源权限
System.out.println(sj.isPermitted("read"));
//判断用户是多否有单个资源权限
System.out.println(sj.isPermittedAll("write","exec"));
}
}


粗略图解

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shiro jar 密码 结构 授权