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