Spring MVC中的 权限拦截定义 以及 权限拦截的研发步骤
权限拦截 (拦截器: 对请求进行区分)
1 实现的价值(作用)
用户未登录:访问没用登录的URL,拦截到以后 跳转回登录
用户未登录:访问登录的URL,直接放行到后续流程处理框架,进行后续的操作
用户登录: 访问拥有的权限 跳转页面并渲染
用户登录: 访问没有的权限 跳转到没有权限的错误页面
权限拦截的研发步骤
1 实现HandlerInterceptor接口 有一个PreHandle方法
获取Session中用户 在获取Request url
判定Session 和null 的关系
为空的情况没有登陆时 跳转到登陆页面
在大配置中如果访问的是登陆url 不做拦截 使用的是Exclude 属性。
不为空的情况 登陆后 分情况讨论放行
访问 hasUrl:放行并渲染
访问 hasNotURL : 拦截跳转到 NoPermission 页面
2 用户登陆以后 访问 hasNotURL : 拦截跳转到 NoPermission 页面
if(hasPrivilegeByurl(url入参)){
retuen true;
}
3 UserInfo中
Public boolean hasOrivilegeByUrl(url入参){
// get all Permission from listener‘s area
List<String>list =null; ---Conver End
if(!list.contains(url)){
return true;// 他不能拦截本身默认拥有的权限 ,这些权限并没有显示在DB中进行存储
}
//获取到CurrentLoginUserPrivilege集合
迭代判定 有 :retuen true;
}
4 配置监听器 全局的监听器 SerbletContextListener
在容器启动的时候 去给application 放入系统所有权限
5 web.xml 中 配置监听器
配置法则 :spring 的监听器一定配置在第一位。
Spring MVC中的 权限拦截定义 以及 权限拦截的研发步骤的更多相关文章
- spring mvc中的拦截器小结 .
在spring mvc中,拦截器其实比较简单了,下面简单小结并demo下. preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们上一章的Control ...
- Spring MVC-学习笔记(5)spring MVC的文件上传、下载、拦截器
1.文件上传. spring MVC为文件上传提供了直接的支持,这种支持是即插即用的MultipartResolver(多部分解析器)实现的.spring MVC使用Apache Commo ...
- Spring MVC中的HandlerMapping与HandlerAdapter
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- spring mvc中使用freemark的一点心得
参考文档: FreeMarker标签与使用 连接http://blog.csdn.net/nengyu/article/details/6829244 freemarker学习笔记--指令参考: ht ...
- Http请求中Content-Type讲解以及在Spring MVC中的应用
引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值 ...
- Spring MVC中处理静态资源的多种方法
处理静态资源,我想这可能是框架搭建完成之后Web开发的”头等大事“了. 因为一个网站的显示肯定会依赖各种资源:脚本.图片等,那么问题来了,如何在页面中请求这些静态资源呢? 还记得Spring MVC中 ...
- Spring MVC 中的基于注解的 Controller【转】
原文地址:http://my.oschina.net/abian/blog/128028 终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 H ...
- Spring MVC中基于注解的 Controller
终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响 ...
- Spring MVC中各个filter的用法
转载:http://blog.csdn.net/qyp1314/article/details/42023725 Spring MVC中各个filter的用法 2014-12-19 09:08 105 ...
- Spring MVC中,事务是否可以加在Controller层
一般而言,事务都是加在Service层的,但是爱钻牛角尖的我时常想:事务加在Controller层可不可以.我一直试图证明事务不止可以加在Service层,还可以加在Controller层,但是没有找 ...
随机推荐
- 快速开发第一个SpringBoot应用
通过笔者这段实践SpringBoot的学习,发现自从使用了SpringBoot后,就再也回不去SpringMVC了,因为相比于SpringMVC,SpringBoot真是太高效率了.下面我们看看它效率 ...
- WPF基于3D对象捕获鼠标点击事件
ModelUIElment3DUIElment3D是.NET3.5新增的类,替代了ModelVisual3D.ModelVisual3D有2个派生类ModelUIElment3D和ContainerU ...
- golang开发:类库篇(二) Redis连接池的使用
为什么要使用连接池 一个数据库服务器只拥有有限的连接资源,一旦所有的连接资源都在使用,那么其它需要连接的资源就只能等待释放连接资源.所以,在连接资源有限的情况下,提高单位时间的连接的使用效率,缩短连接 ...
- java Https工具类
import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import ja ...
- HBase Region重点剖析
Region的概念 Region是HBase数据管理的基本单位.数据的move,数据的balance,数据的split,都是按照region来进行操作的. region中存储这用户的真实数据,而为了管 ...
- 驰骋工作流引擎ccflow-ccbpm工作流引擎sdk表单装载逻辑处理注意事项
cbpm工作流引擎sdk表单装载逻辑处理注意事项 关键字:驰骋工作流引擎 sdk表单 装载接口调用 说明:如果您要采用ccbpm的sdk表单开发,在表单 加载前您需要调用一个接口来获得当前节点的信 ...
- Golang之mirco框架部分浅析
在实习中使用 micro 框架,但是挺多不懂的,看了部分源码搞懂了一些,还是有一些比较复杂没搞懂. 第一部分:初始化 service 并修改端口 main.go // waitgroup is a h ...
- HDU 3081:Marriage Match II(二分图匹配+并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=3081 题意:有n个男生n个女生,他们只有没有争吵或者女生a与男生A没有争吵,且女生b与女生a是朋友,因此女生b也 ...
- java 及 Jquery中的深复制 浅复制
发现问题:最近 遇到由于复制对象之后,改变复制后的新变量,原先被复制的对象居然会跟着变. EX:java中: //holidayConfig.getEnd_time()会随着sTime的改变而改变 s ...
- C#实体是什么
实体 一般是指三层结构的数据库访问形式中,用于映射数据表或视图中一条记录的类的实例.例如现有数据表A 内涵 ID int(4) Info(nvarchar 50)两个字段,而有其对应的类 public ...