shiro(四)大结局总结以及按钮级别权限控制

shiro

shiro是apache旗下的权限控制框架,shiro有四大核心
认证器(authenticator)、授权器(Authorizer)、会话管理器(sessionManager)、
密码管理器(Cryptography)
我们在项目当中使用shiro的时候,需要配置shiroFilter、指定securityManager、
登录url、非法访问的url、权限过滤规则等等,认证和授权通过自定义Realm
重写dogetAuthentication 登录认证方法以及dogetAuthorization方法 授权方法

shiro不仅仅提供url级别的权限控制,我们还通过shiro标签 hasrole、haspermisstion
实现按钮级别的权限管理.
session管理这一块,我们使用spring-session实现了分布式环境下的
session分离,手动开发sessionDao,重写session的增删改查方法

第一步引入标签库

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

只有admin角色才能访问

<shiro:hasRole name="admin">
<button>添加员工</button>
</shiro:hasRole>

所有人都可以访问

<shiro:hasAnyRoles name="admin,staff">
<button>查询员工</button>
</shiro:hasAnyRoles>

当然这里的配置要和过滤器对应

<!-- 过滤器链定义   shirofilter可以拦截静态子资源的,所以静态资源一定得在这里配置 -->
		<property name="filterChainDefinitions">
			<value>
				/login/**= anon
				/css/**=anon
				/html/**=anon
				/images/**=anon
				/js/**=anon
				/staff/**=roles[admin,staff]
				/company/**=roles[admin]
				/logout = logout
				<!-- user表示身份认证通过或通过记住我认证通过的可以访问 -->
				/** = user
				<!-- /**放在最下边,如果一个url有多个过虑器则多个过虑器中间用逗号分隔,如:/** = user,roles[admin] -->
			</value>
		</property>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值