shiro添加多用户角色判断
首先简单介绍一下shiro
shiro是Apache开源项目的一个安全开源框架。提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。
这篇文章介绍一下在对roles进行判断,一般验证一个角色,想添加多个角色时,会报一些重定向循环之类的错误。
首先要重写一个RolesAuthorizationFilter我们命名为AnyRolesAuthorizationFilter
代码如下:
AnyRolesAuthorizationFilter.java
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; } }
然后加入到你的xml文件中:
<property name="filters"> <map> <entry key="authc" value-ref="formAuthenticationFilter"/> <entry key="roles" value-ref="anyRolesAuthorizationFilter"/> </map> </property>
<bean id="formAuthenticationFilter" class="com.thon.security.CaptchaFormAuthenticationFilter"/> <bean id="anyRolesAuthorizationFilter" class="com.thon.security.AnyRolesAuthorizationFilter"/>
下面就是关键的多角色的配置:
在你的xml文件中配置如下:
<property name="filterChainDefinitions"> <value> /index = roles[user,institution,charitarian,admin] /** = anon </value> </property>
ok。大功告成。
这里只是记录一下平时学习笔记。
详细的教程,如果有需要后面会补上。
转载请标明出处:http://blog.csdn.net/zemochen/article/details/16891965
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Apache Shiro 角色和权限
- 下一篇: 自定义Shiro标签Tag