shiro多角色访问同一个url
来源:互联网 发布:程序员考试时间 编辑:程序博客网 时间:2024/05/16 09:04
shiro如何控制一个url多个角色都可以访问
/admin/** = roles[admin,partner] 这样写必须同时拥有两个角色才能访问
我们可以自定义角色验证标签。
1、首先继承RolesAuthorizationFilter,覆写isAccessAllowed方法
public class AnyRolesAuthorizationFilter extends RolesAuthorizationFilter { @Override public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException { final Subject subject = getSubject(request, response); final String[] rolesArray = (String[]) mappedValue; if (rolesArray == null || rolesArray.length == 0) { // no roles specified, so nothing to check - allow access. return true; } for (String roleName : rolesArray) { if (subject.hasRole(roleName)) { return true; } } return false; }}
2、注册bean<bean id="anyRolesAuthorizationFilter" class="com.rwy.spider.service.AnyRolesAuthorizationFilter"/>
3、声明自定义标签并使用
<!-- Shiro Filter --><bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login" /> <property name="successUrl" value="/" /> <!-- 声明自定义标签 hasAnyRoles--> <property name="filters"> <map> <entry key="hasAnyRoles" value-ref="anyRolesAuthorizationFilter"/> </map> </property> <property name="filterChainDefinitions"> <value> /login = anon /logout = logout /static/** = anon /admin/** = roles[admin] /system/** = hasAnyRoles[admin,partner] /** = authc </value> </property></bean>
这样,admin、partner这两个角色就都可以访问/system路径下的url了
0 0
- shiro多角色访问同一个url
- shiro角色( roles)自定义Filter----同一个URL配置多个角色的或关系
- 使用Apache shiro进行权限管理时如何对同一个URL配置多个角色的或关系
- Shiro Spring url 控制访问
- Shiro之urls配置多个角色
- shiro角色配置
- shiro角色权限验证
- 多个浏览器访问同一个jsp页面
- Oracle 多 session 串行访问同一个 block
- 多个请求访问同一个servlet
- Maven搭建Struts2+Hibernate4+Spring4+Shiro(安全篇)之子项目(基于角色,权限的访问控制)
- shiro配置filterchaindefinitions实现多角色判定方法的重写
- spring-shiro实现角色(roles)自定义Filter----配置多个角色的或关系
- shiro添加多用户角色判断
- Apache Shiro 角色和权限
- (四) shiro权限与角色
- shiro (三)权限角色判断
- ExtJs中同一个URL构造多个Ext.data.JsonStore
- Java 设计模式- 外观模式
- 恋恋加密算法解析
- TimesTen访问Oracle的口令存在哪里(ttCacheUidPwdSet还是OraclePWD)
- untiy 3d ShaderLab_第 2 章Unity中Shader(着色器)的形态_3_Shader的数据接口:属性和 uniform变量
- 在Java中如何高效判断数组中是否包含某个元素
- shiro多角色访问同一个url
- PAT-B 1006. 换个格式输出整数
- APP创意IDEA记录
- 文章标题
- 浅谈Solr和ElasticSearch建索引性能优化策略
- 17、IO流-File操作
- leetcode——173——Binary Search Tree Iterator
- 存储过程详解1
- makefile 标准模板