使用shiro框架进行权限的管理
2019-01-03 20:03
218 查看
1.shir 4000 o框架的角色管理
1.1 在用户验证成功以后,可以在jsp页面中使用shiro的标签进行角色的验证首先,在jsp页面中需要导入shiro需要的uri
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>
导入该标签以后。就可以使用shiro的标签
<shiro:guest> 亲,请<a href="login.jsp">登录</a> </shiro:guest> <shiro:user> <shiro:principal> </shiro:principal> <a href="logout.do">退出</a> </shiro:user> <br> <button id="ss" >系统管理</button> <c:forEach items="${rolelist }" var="role"> <shiro:hasRole name="${role.roleName }"> <a href="Login/role${role.roleId }.do">${role.roleName }管理</a> </shiro:hasRole> <script type="text/javascript"> $("#ss").click(function () { $.post("Login/role8.do",{},function (data){ }) }) </script> </c:forEach> <hr> <div align="center"> <shiro:hasPermission name="user:create"> <a href="#">增加</a> </shiro:hasPermission> <table border="1" style="border-collapse: collapse;"> <tr> <th>用户ID</th> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>爱好</th> <th>用户名</th> <th>创建时间</th> <th>操作</th> </tr> <c:forEach items="${pageResult.dataList}" var="user"> <tr> <td><input type="checkbox" name="id" value="${user.userId }" />${user.userId }</td> <td>${user.name }</td> <td>${user.age }</td> <td>${user.sex }</td> <td>${user.hobby }</td> <td>${user.userName }</td> <td>${user.createTime }</td> <td><shiro:hasPermission name="user:update"> <button>更新</button> </shiro:hasPermission> <shiro:hasPermission name="user:delete"> <button>删除</button> </shiro:hasPermission></td> </c:forEach> </table> </div>
其中shiro:gues
20000
t 标签是可以匿名登录
shiro:user标签和shiro:principal一般是一起使用,表示的当前登录进来的用户是谁。
<shiro:hasRole name="">标签表示该用户拥有什么角色,如果该用户拥有name中的角色,则显示标签后面的所有代码。
<shiro:hasPermission name=“user:create”> 标签和上面的hasrole标签类似。
首先,需要在springMVC的配置文件中添加启用注解的配置
<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor" />
现在就可以在java代码中使用shiro的注解来管理权限的访问了。
@RequestMapping("/role8.do") @RequiresRoles(value= {"系统"}) public String role8() { return "role8"; }
这段代码可以看出,当页面访问这个方法的时候,必须是具有“系统”这个角色的时候才能访问,否则会抛出一个org.apache.shiro.authz.UnauthorizedException异常,可以在web.xml文件中捕获这个异常并且跳转一个错误的jsp页面
<error-page> <exception-type>org.apache.shiro.authz.UnauthorizedException</exception-type> <location>/WEB-INF/view/fail.jsp</location> </error-page>1.3 给用户配置角色和权限
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { String username = (String) principals.getPrimaryPrincipal(); List<Role> rolelist = roleservice.findRoleByUserName(username); Set<String> roles = new HashSet<>(); Set<String> permission = new HashSet<>(); for (Role role : rolelist) { roles.add(role.getRoleName()); List<Permission> permissionlist = permissionMapper.findPermissionByRoleId(role.getRoleId()); for (Permission permission1 : permissionlist) { permission.add(permission1.getPermissionName()); } } SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(roles); info.addStringPermissions(permission); return info; }
在MyRealm中又两个重写的方法。doGetAuthorizationInfo()方法是授权方法,就是在jsp页面中又shiro的hasrole之类的标签时,才会调用该方法来查询该用户拥有哪些角色和权限。
至此,shiro对权限的控制和访问就已经能使用了。
相关文章推荐
- 使用shiro进行权限管理
- 使用shiro进行权限管理
- 使用Apache shiro进行权限管理时如何对同一个URL配置多个角色的或关系
- 数据级的权限管理和功能级的权限管理的区别,不使用框架(shiro,springsecurity)做权限设计的思考
- 在前后端分离的项目中,后台使用shiro框架时,怎样使用它的会话管理系统(session),从而实现权限控制
- 使用shiro进行权限管理
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码分享
- 使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享
- 使用RxPermission框架对android6.0权限进行检测
- 单点登录cas与权限管理框架shiro集成------spring项目方式
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
- SSM框架_3(shiro权限管理)
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码分享
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之五--模块(菜单)管理源码分享
- 使用Jquery+EasyUI 进行框架项目开发案例解说之二---用户管理源代码分享
- 使用membership来进行角色与权限管理
- [置顶] SpringMVC下的Shiro权限框架的使用
- 权限管理框架Shiro
- shiro权限管理框架简介(一)
- 权限管理框架实现(2)--Struts中ValueStack使用