Springboot中登录后关于cookie和session拦截案例
一、前言
1、简单的登录验证可以通过Session或者Cookie实现。
2、每次登录的时候都要进数据库校验下账户名和密码,只是加了cookie 或session验证后;比如登录页面A,登录成功后进入页面B,若此时cookie过期,在页面B中新的请求url到页面c,系统会让它回到初始的登录页面。(类似单点登录sso(single sign on))。
3、另外,无论基于Session还是Cookie的登录验证,都需要对HandlerInteceptor进行配置,增加对URL的拦截过滤机制。
二、利用Cookie进行登录验证
1、配置拦截器代码如下:
`@Slf4j
public class CookiendSessionInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.debug("进入拦截器");
Cookie[] cookies = request.getCookies();
if(cookies!=null && cookies.length>0){
for(Cookie cookie:cookies) {
log.debug("cookie===for遍历"+cookie.getName());
if (StringUtils.equalsIgnoreCase(cookie.getName(), "isLogin")) {
log.debug("有cookie ---isLogin,并且cookie还没过期...");
//遍历cookie如果找到登录状态则返回true继续执行原来请求url到controller中的方法
return true;
}
}
}
log.debug("没有cookie-----cookie时间可能到期,重定向到登录页面后请重新登录。。。");
response.sendRedirect("index.html");
//返回false,不执行原来controller的方法
return false; }
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { }
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }`
Springboot中登录后关于cookie和session拦截案例的更多相关文章
- Postman接口测试:自动获取登录后的cookie并设置环境变量
在对网站进行接口测试的时候,很多请求往往是需要带登录的cookie才能请求成功的,一般来说,可以用抓包软件(fiddler,浏览器的F12)来查看登录后的cookie,并把它设置到postman的环境 ...
- 模拟用户登录(获取cookie/实例化session)
第一种方法:通过本地浏览器保存的cookie进行登陆 url1 = 'https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2F ...
- Laravel 登录后清空COOKIE 方法
需求 在Laravel 登陆立即清空保存的COOKIE数组 实现 # Http/Controllers/Auth/LoginController.php public function redirec ...
- springboot中使用Filter、Interceptor和aop拦截REST服务
在springboot中使用rest服务时,往往需要对controller层的请求进行拦截或者获取请求数据和返回数据,就需要过滤器.拦截器或者切片. 过滤器(Filter):对HttpServletR ...
- yii中登录后跳转回登录前请求的页面
当我们请求一个经过权限控制的请求不通过时,会跳转到一个地方请求权限,请求结束后需要跳转回之前的页面.比如我们请求一个需要登录的action,会被跳转到login页面,我们希望登录成功后跳转到我们之前希 ...
- nodejs中cookie、session的使用
因为http会话的无状态性,为了标记用户的登录状态,便出现了cookie.cookie分为很多种,有普通cookie.签名cookie.json cookie等,这里主要记录下在express应用中如 ...
- Session问题-一个部门A登录后未注销另一个部门B再登录,以B的身份操作A的成员
当管理员A登录后,打开某个管理界面.在A和B权限菜单相同的情况下,管理员B新开页面登录,session变为B的,然后切换到A打开的界面,不刷新的情况下可以操作A的数据. 解决方案:当浏览器登录后,即存 ...
- springboot中使用spring-session实现共享会话到redis(二)
上篇文章介绍了springboot中集成spring-session实现了将session分布式存到redis中.这篇在深入介绍一些spring-session的细节. 1.session超时: 在t ...
- Cookie与Session详解
来源:<PHP核心技术与最佳实践> 列旭松 陈文 著 Cookie与Session详解读书笔记,从概念.操作.应用.注意事项以及区别等几方面详细阐述两者的基础知识,它们都是针对HTTP协议 ...
随机推荐
- 【高并发】亿级流量场景下如何为HTTP接口限流?看完我懂了!!
写在前面 在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一.京东618.秒杀.抢购促销等,这些都是典型的大流量高并发场景.关于秒杀,小伙伴们可以参见我的另一篇 ...
- PHP 标量类型与返回值类型声明
标量类型声明 默认情况下,所有的PHP文件都处于弱类型校验模式. PHP 7 增加了标量类型声明的特性,标量类型声明有两种模式: 强制模式 (默认) 严格模式 标量类型声明语法格式: declare( ...
- 使用FreeSurfer进行脑区分割
FreeSurfer 是美国哈佛-麻省理工卫生科学与技术部和马萨诸塞州总医院共同开发的一款磁共振数据处理软件包,是基于 Linux 平台的全免费开源软件.FreeSurfer 能完成对高分辨率的 MR ...
- MySQL(8.0.19版本的下载和安装)、window10
mysql的下载 MySQL官网:https://www.mysql.com/ 下载地址:https://dev.mysql.com/downloads/installer/ MySQL 8.0参 ...
- 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换
本文是精讲RestTemplate第2篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 RestTemplate只是对其他的HTTP客 ...
- JAVA程序设计环境
JDK ,Java Development Kit(Java开发工具包) JRE ,Java Runtime Environment(Java运行时环境) SE ,Standard Edition ...
- 安卓APP开发的初步了解
今天成功安装了Android Studio 并且对APP的开发框架结构进行了初步了解 如上图:app基本结构情况 下面来仔细解释一下各个方面目录的作用 首先 manifests目录:包含Android ...
- 19、Java 序列化
1.序列化的概念,意义以及使用场景 序列化: 将对象写入到IO流中,也就是把Java对象转换为字节序列的过程 反序列化: 从IO流中恢复对象*,也就是把字节序列恢复为Java对象的过程 意义: 序列化 ...
- Java 设置、删除、获取Word文档背景(基于Spire.Cloud.SDK for Java)
本文介绍使用Spire.Cloud.SDK for Java 提供的BackgroundApi接口来操作Word文档背景的方法,可设置背景,包括设置颜色背景setBackgroundColor().图 ...
- Java基础—封装
封装是面向对象的核心特征之一,它提供了一种信息隐藏技术.类的包装包含两层含义:一是将数据和对数据的操作组合起来构成类,类是一个不可分割的独立单位:二是类中既要提供与外部联系的接口,又要尽可能隐藏类的实 ...