单点登录Redis存储Session及Cookie场景介绍
首先response如果是成功的话,就是登陆成功,我就不往session里面放值了,直接调用RedisPoolUtil,setEx方法,在设置的时候,直接把他的时间加上,key就用session.getId(),用session的id,value就是JsonUtil,就是我们之前封装的,obj2String,然后把response的data放进来,然后再放一下他的时间,这个时间,直接加到这里面,public interfaceRedisCacheTime,直接设置的时间,int,int一个什么值呢,REDIS_SESSION_EXTIME,等于60*30,也就是30分钟,因为他的单位是秒,60秒是一分钟,登陆的时候我们把redis,里面放的session,有效期设置为30分钟,然后这里面调用一下他
/*** 用户登录* @param username* @param password* @param session* @return*/@RequestMapping(value = "login.do",method = RequestMethod.POST)@ResponseBodypublic ServerResponse<User> login(String username, String password, HttpSession session, HttpServletResponse httpServletResponse){ServerResponse<User> response = iUserService.login(username,password);if(response.isSuccess()){// session.setAttribute(Const.CURRENT_USER,response.getData());CookieUtil.writeLoginToken(httpServletResponse,session.getId());RedisShardedPoolUtil.setEx(session.getId(), JsonUtil.obj2String(response.getData()),Const.RedisCacheExtime.REDIS_SESSION_EXTIME);}return response;}
我们现在要把登陆信息保存到服务端的redis里面,那我们看一下,sessionId是什么,开始部署tomcat,我们要配置两个tomcat server,第一个是tomcat1,我们再配置一个,因为前面的集群是做了两个tomcat,把第一个tomcat改一下名字,方便我们来识别,tomcat1和2就OK了,可以看到,这里面用的类也是不一样的,然后我们先把他部署到tomcat1上,JRE选择我们配置的,1是8080端口,2是9080,默认给我们tomcat的一个配置,选择war包,再强调一次,因为我们用的斜杠,我们点击debug启动,这边打一个断点,可以看到我们这个首页已经启动了,我们点开检查,然后看一下application里面的cookie,我们可以看到这个时候有一个cookie
JSESSIONID,value是F51C,这么一个value,因为我们这个代码,login.do是需要post请求的,所以我们还要把测试工具打开,我们来模拟请求一下,现在进入到属性的界面,这里都是一期讲的各种接口,下面有一个2.0,这个是我调试时候用的,把它删除掉,创建一个project,然后在里面创建一个service,然后add a request,我们打开这个open request,开始写我们的模拟,我们不用https的,请求localhost,login.do,然后add两个参数,一个是username,另外一个是password,我们这个账号密码还要准确的,否则呢,isSuccess就进不来了,账号密码都是admin,当然这是我们测试库的测试密码,然后我们点击send
单点登录Redis存储Session及Cookie场景介绍相关推荐
- 单点登录Redis存储Session及SessionId问题说明与集群实战-4
现在就是要改造我们getUserInfo,因为我们不会再从session里面获取用户,首先我们要哪一个login_token,这个时候拿到loginToken,如果loginToken是empty的话 ...
- 单点登录Redis存储Session及SessionId问题说明与集群实战-3
那现在我们就是要把sessionID的login请求,我们再看一下redis,回到我们的代码,我们现在不请求localhost:8080了,我们要请求happymall.com,因为我们 已经把他配置 ...
- 单点登录Redis存储Session及SessionId问题说明与集群实战-1
断点已经到这儿了,sessionId我们看一下,sessionId是B218,我们把value copy一下 放到这里,然后让Redis存上,key就是session的id,value就是user,后 ...
- 单点登录Redis存储Session及SessionId问题说明与集群实战-2
我们要写什么呢,我们要在服务端写一个cookie,而这个cookie呢,是写在客户端上的,那他写的就是登陆时候的,sessionId,非常简单,我们开始写一下,首先新建一个类,我们就在util里面创建 ...
- yii2设置session时间_关于 Swoft 2.0 版本用 Redis 存储 session 时配置问题
Swoft 2.0 在 session 配置上和 1.0 还是有一些不同地方,而关于这些在 github 上完全没有任何说明,甚至连文档也没有.经过逐步梳理源代码(其中要理解他的 "注解&q ...
- java redis 存session_JavaWeb: Redis存储Session方案
所有支持Servlet规范的容器都自带session管理,于是大多数人都使用HttpSession接口存放状态信息.事实上, servlet的session会使得应用服务器水平扩展变的非常困难. 使用 ...
- php ?redis,PHP使用Redis存储Session
对于大访问量的网站来说,会有许多的客户端和服务端建立链接,就会生成许多 Session 文件,由于 Session 文件是存储在硬盘上的,因此每次服务器去读取这些 Session 文件都要经过许多的 ...
- JavaWeb: Redis存储Session方案
2019独角兽企业重金招聘Python工程师标准>>> 所有支持Servlet规范的容器都自带session管理,于是大多数人都使用HttpSession接口存放状态信息.事实上, ...
- 单点登录系统中如何共享cookie
使用cookie的两个属性 domain-域 通过设置这个属性可以使多个web服务器共享cookie.domain属性的默认值是创建cookie的服务器的主机名.不能将一个cookie的域设置成服务器 ...
最新文章
- 机房收费系统【VB版】——前期准备
- 虚拟机安装python3.6.6_python3.6安装,解决import sqlite错误
- pandas的str函数的一些功能
- Btrace详细指南(JDK7,监控HashMap扩容)
- SAP Spartacus B2B功能,只渲染BodyContent position里的UI
- [模拟|数位] leetcode 9 回文数
- 编程语言“鄙视链” +1?亚马逊力捧 Rust,Go 技术负责人连发 14 条推特抵制“拉踩”...
- Android的Wifi系统框架分析第一篇
- centOS7.6 服务器配置环境
- oracle rman在线备份,Oracle的RMAN备份与恢复脚本
- linux环境下,集群中Hadoop版本更换
- Vegas渲染的时候选什么格式?
- 【手撕算法】PatchMatch图像修复算法C++实现
- Excel 多个条件同时重复时,自动标红
- 用java做出长方体的表面积_计算长方体、四棱锥的表面积和体积(Java)acm.sdut...
- 基于STM32的物联网下智能化养鱼鱼缸控制控制系统
- 梦想遥不可及,现实寸步不离
- 启用邪恶-使用XmlSerializer和一些魔术在Xml中隧道化Xml
- 【Linux】 基础入门 全解
- 分布式、微服务、集群