文档章节

shiro,一个文件夹下面的url可以有多个角色访问

霜叶情
 霜叶情
发布于 2017/05/24 15:43
字数 195
阅读 4
收藏 0


1,如果一个文件夹下面的url可以有多个角色访问,则需要:
新建一个MyRolesAuthorizationFilter.java
在shiro.ini的[main]下面配置roles = com.pengchuntao.util.MyRolesAuthorizationFilter
在shiro.ini的[urls]下面配置/generalUser/** = roles[admin,generaluser]
这样就能表示WebContent/generalUser/下面所有的资源则admin,generaluser两个角色都能访问
默认情况下,shiro并不支持,必须要新建一个过滤器

 

2,

package com.pengchuntao.util;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.CollectionUtils;
import org.apache.shiro.web.filter.authz.AuthorizationFilter;

public class MyRolesAuthorizationFilter extends AuthorizationFilter {

    @SuppressWarnings({ "unchecked" })
    public boolean isAccessAllowed(ServletRequest request,
            ServletResponse response, Object mappedValue) throws IOException {

        Subject subject = getSubject(request, response);
        String[] rolesArray = (String[]) mappedValue;

        if (rolesArray == null || rolesArray.length == 0) {
            // no roles specified, so nothing to check - allow access.
            return false;
        }

        List<String> roles = CollectionUtils.asList(rolesArray);
        boolean[] hasRoles = subject.hasRoles(roles);
        for (boolean hasRole : hasRoles) {
            if (hasRole) {
                return true;
            }
        }
        return false;
    }
}

© 著作权归作者所有

上一篇: Shiro博客
下一篇: maven坐标含义
霜叶情
粉丝 3
博文 102
码字总数 67306
作品 0
长沙
私信 提问
Apache Shiro入门总结

一:数据库表结构 users:用户表,包含用户名、密码、角色ID。 roles:角色表,包含角色名。 permission:权限表,包含权限字符串(user:add),权限描述。 role_permission:中间表,包含角色和权限...

铂金小虫
2013/09/01
0
1
补习系列- springboot 整合 shiro 一指禅

目标 了解ApacheShiro是什么,能做什么; 通过QuickStart 代码领会 Shiro的关键概念; 能基于SpringBoot 整合Shiro 实现URL安全访问; 掌握基于注解的方法,以实现灵活定制。 一、Apache Sh...

美码师
2018/08/14
0
0
从权限控制到shiro框架的应用

说明:本文很多观点和内容来自互联网以及各种资料,如果侵犯了您的权益,请及时联系我,我会删除相关内容。 权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范...

神秘的寇先森
2018/01/01
0
0
SpringBoot 优雅的整合 Shiro

Apache Shiro是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理。借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到最大的...

木云凌
03/19
0
0
补习系列-SpringBoot 整合Shiro 一指禅

目标 了解ApacheShiro是什么,能做什么; 通过QuickStart 代码领会 Shiro的关键概念; 能基于SpringBoot 整合Shiro 实现URL安全访问; 掌握基于注解的方法,以实现灵活定制。 一、Apache Sh...

美码师
2018/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

android6.0源码分析之Camera API2.0下的Preview(预览)流程分析

本文将基于android6.0的源码,对Camera API2.0下Camera的preview的流程进行分析。在文章android6.0源码分析之Camera API2.0下的初始化流程分析中,已经对Camera2内置应用的Open即初始化流程进...

天王盖地虎626
21分钟前
1
0
java 序列化和反序列化

1. 概述 序列恢复为Java对象的过程。 对象的序列化主要有两 首先我们介绍下序列化和反序列化的概念: 序列化:把Java对象转换为字节序列的过程。 反序列化:把字节序列恢复为Java对象的过程。...

edison_kwok
33分钟前
1
0
分布式数据一致性

狼王黄师傅
今天
2
0
经验

相信每位开发者在自己开发的过程中,都会反思一些问题,比如怎样提高编程能力、如何保持心态不砍产品经理、996 之后怎样恢复精力……最近开发者 Tomasz Łakomy 将他 7 年的开发生涯中学习到...

WinkJie
今天
4
0
从源码的角度来看SpringMVC

SpringMVC核心流程图 简单总结 首先请求进入DispatcherServlet 由DispatcherServlet 从HandlerMappings中提取对应的Handler 此时只是获取到了对应的Handle,然后得去寻找对应的适配器,即:H...

骚年锦时
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部