shiro 常用过滤器

shiro配置权限管理:

<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
				/test = anon
				/test.do = anon
				/testRole = roles["admin","admin1"]
				/testRole1 = rolesOr["admin","admin1"]
				/subLogin = anon
				/logout = anon
				/*= authc
			</value>
		</property>
		<property name="filters">
			<map>
				<entry key="rolesOr" value-ref="rolesOrFilter" />
			</map>
		</property>
	</bean>

<!-- 自定义filter -->
<bean id="rolesOrFilter" class="com.shiroTest.filter.RolesOrFilter" />

自定义filter:

public class RolesOrFilter extends AuthorizationFilter {
	@Override
	protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object obj) throws Exception {
		org.apache.shiro.subject.Subject subject = getSubject(request,response);
		String[] roles = (String[]) obj;
		if(roles == null || roles.length==0){
			return true;
		}
		for (String role:roles){
			if (subject.hasRole(role)){
				return true;
			}
		}
		return false;
	}
}

 

转载于:https://my.oschina.net/fendouan/blog/2209785

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值