shiro进行权限控制的四种方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shiro进行权限控制的四种方式相关的知识,希望对你有一定的参考价值。

```我们使用shiro进行权限控制 有以下几种方式 1. URL拦截权限控制:基于filter过滤器实现 我们在spring配置文件中配置shiroFilter时配置 <!--指定URL级别拦截策略 --> <property name="filterChainDefinitions"> <value> /css/ = anon /js/ = anon /images/ = anon /validatecode.jsp = anon /login.jsp = anon /userActionlogin.action = anon /pagebasestaff.action = perms["staff-list"] / = authc </value> </property> 2. 方法注解权限控制:基于代理技术实现 我们在代码方法上用注解声明调用该方法需要什么权限。 首先要在spring配置文件中进行声明开启shiro注解: <!-- 开启shiro框架注解支持 -->* <bean id="defaultAdvisorAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> <!-- 必须使用cglib方式为Action对象创建代理对象 --> <property name="proxyTargetClass" value="true"/> </bean> <!-- 配置shiro框架提供的切面类,用于创建代理对象 --> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/> 然后在方法上声明: @RequiresPermissions("staff-delete") //执行这个方法,需要当前用户具有staff-delete这个权限 public String deleteBatch(){ staffService.deleteBatch(ids); return LIST; } * 3. 页面标签权限控制:页面表签技术实现 首先要在jsp页面进入表签: <%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro" %> 然后包裹权限控制的内容 <shiro:hasPermission name="Permission"> xxxxxxxxxxxxxxxx </shiro:hasPermission> 4.代码级别权限控制: public String edit(){ Subject subject = SecurityUtils.getSubject(); subject.checkPermission("staff-edit"); Staff staff = staffService.findById(model.getId()); staff.setName(model.getName()); staff.setTelephone(model.getTelephone()); staff.setHaspda(model.getHaspda()); staff.setStandard(model.getStandard()); staff.setStation(model.getStation()); staffService.update(staff); return LIST; } 总结: 使用shiro进行权限控制时 这四种方法并不是进行单一的使用,是相互结合的使用从而完整的进行权限控制。

以上是关于shiro进行权限控制的四种方式的主要内容,如果未能解决你的问题,请参考以下文章

了解权限控制框架shiro 之实际应用.

项目一:第十二天 1常见权限控制方式 2基于shiro提供url拦截方式验证权限 3在realm中授权 5总结验证权限方式(四种) 6用户注销7基于treegrid实现菜单展示

爆破专栏丨Spring Security系列教程之Spring Security的四种权限控制方式

038 使用shiro的方法注解方式进行权限控制 - bos

shiro框架的四中权限控制方式

shiro框架的四中权限控制方式