SpringMVC+MyBatis项目总结(四)
2015-06-09 20:33
1061 查看
这次用mybatis+SpringMVC做图书系统,第一次做了权限控制。
数据库表还是用户--角色--权限,用户和角色多对一关系,角色和权限多对多关系(增加一张中间表)
在业务层声明一个方法,通过角色id查询对应的权限,在拦截器中调用。
权限表存的是各个action的地址,通过中间表吧角色和权限表关联起来
拦截器配置如下:
其中userInsession是登陆验证拦截器,Authority则是权限拦截器,代码如下
这样就简单的实现了权限验证,但是用户具有修改个人信息,不能修改其他用户信息的这种拦截器没想好怎么设计,还要在查找资料看看了~
数据库表还是用户--角色--权限,用户和角色多对一关系,角色和权限多对多关系(增加一张中间表)
在业务层声明一个方法,通过角色id查询对应的权限,在拦截器中调用。
权限表存的是各个action的地址,通过中间表吧角色和权限表关联起来
拦截器配置如下:
<mvc:annotation-driven/> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean id="userInSession" class="cn.edu.bjut.zj.tims.command.interceptor.UserInSession"/> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/**"/> <bean id="authority" class="cn.edu.bjut.zj.tims.command.interceptor.Authority"/> </mvc:interceptor> </mvc:interceptors>
其中userInsession是登陆验证拦截器,Authority则是权限拦截器,代码如下
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { if(arg0.getServletPath().contains("login")||arg0.getServletPath().contains("exit")) return true;//对登陆和退出操作放行 List<cn.edu.bjut.zj.tims.entity.Authority> list = biz.queryAuthorityByRole(((UserExtend)arg0.getSession().getAttribute("loginUser")).getRoleid()); for (cn.edu.bjut.zj.tims.entity.Authority s : list) { if(s.getActionname().contains(arg0.getServletPath())) return true; } arg0.getRequestDispatcher("../error/noAuthority.jsp").forward(arg0, arg1); return false; }
这样就简单的实现了权限验证,但是用户具有修改个人信息,不能修改其他用户信息的这种拦截器没想好怎么设计,还要在查找资料看看了~
相关文章推荐
- extjs 为某个事件设置拦截器
- ASP.NET对HTML页面元素进行权限控制(二)
- ASP.NET对HTML页面元素进行权限控制(一)
- PHP的拦截器实例分析
- Android权限控制之自定义权限
- ASP.NET MVC 中实现基于角色的权限控制的处理方法
- SpringMVC文件上传 多文件上传实例
- spring mvc4的日期/数字格式化、枚举转换示例
- 防止未登录用户操作―基于struts2拦截器的简单实现
- CI框架中通过hook的方式实现简单的权限控制
- Swift中的Access Control权限控制介绍
- SpringMVC入门小程序 -- Myeclipse 9.1下
- SpringMVC+Spring3+Hibernate4
- SpringMVC+MyBatis项目总结(一)
- SpringMVC+MyBatis项目总结(三)
- springMVC+spring+Mybatis
- SpringMVC+mybatis+Spring框架整合+简单实现的demo
- Springmvc与jasperreport结合生成报表的一种方法 4000
- 蓝缘系统第三版本即将开源;基于springMVC+Apache shiro 1.2.3+Mybai
- struts使用拦截器注解