Shiro内置过滤器

  • anon、authBasic、authc、user、logout
  • perms、roles、ssl、port
spring.xml
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="login.html" />
<property name="unauthorizedUrl" value="403.html" />
<property name="filterChainDefinitions">
<value>
/login.html = anon
/subLogin = anon
/testRole = roles["admin", "admin1"]
/testRole1 = rolesOr["admin", "admin1"]
/* = authc
</value>
</property>
<property name="filters">
<util:map>
<entry key="rolesOr" value-ref="rolesOrFilter" />
</util:map>
</property>
</bean> <bean class="com.imooc.filter.RolesOrFilter" id="rolesOrFilter" />
Controller.java
@RequestMapping(value="/testRole", method = RequestMethod.GET)
@ResponseBody
public String testRole() {
return "testRole success";
} @RequestMapping(value="/testRole1", method = RequestMethod.GET)
@ResponseBody
public String testRole1() {
return "testRole1 success";
} @RequestMapping(value="/testPerms", method = RequestMethod.GET)
@ResponseBody
public String testPerms() {
return "testPerms success";
} @RequestMapping(value="/testPerms1", method = RequestMethod.GET)
@ResponseBody
public String testPerms1() {
return "testPerms1 success";
}
RolesOrFilter
public class RolesOrFilter extends AuthorizationFilter {
@Override
protected boolean isAccessAllowed(ServletRequest servletRequest, ServletResponse servletResponse, Object o) throws Exception {
Subject subject = getSubject(servletRequest, servletResponse);
String[] roles = (String[]) o;
if (roles == null || roles.length == 0) {
return true;
}
for (String role : roles) {
if (subject.hasRole(role)) {
return true;
}
}
return false;
}
}

最新文章

  1. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 &#39;#TT&#39; 中的标识列插入显式值。 sql server 临时表
  2. 已解决:Ubuntu php gettext 无效
  3. [COCI2012Final]Pro1
  4. WPF控件
  5. 怎么用jquery判断浏览器类型和版本号?
  6. Netsharp快速入门(之4) 基础档案(之C 实体建模 计量单位、商品、往来单位)
  7. oracle中的数据读取与查找
  8. swift 语法 - 以及学习资料
  9. ACM vim配置
  10. hdu 3874 Necklace(线段树)
  11. JVM内存划分
  12. 持续集成接口自动化-jmeter+ant+jenkins(一)
  13. js 异步转同步
  14. 操作Excel
  15. [docker]使用quaaga实现(rip ospf)实现主机间容器互通
  16. NOIP2015神奇的幻方
  17. Easy to use cross-platform 3D engines
  18. 远程操作与端口转发 SSH原理与运用
  19. 【C#】自定义容器控件,设置界面控件,支持设计器拖入控件
  20. Fig 7.2.4 &amp; Fig 7.3.2

热门文章

  1. Netty快速入门(02)Java I/O(BIO)介绍
  2. 客户端进行定位(无地图API)
  3. POJ Muddy Fields 泥泞的牧场 二分图
  4. 关于SDWebImage的一点小坑
  5. Falco 进入 CNCF Incubator 项目 | 云原生生态周报 Vol. 35
  6. 19南京网络赛A 扫描线
  7. 使用ABAP Data Validator验证数据有效性
  8. git 工作中实用合并分支
  9. 异数OS TCP协议栈测试(一)--数据传输篇
  10. tensorboard网络结构