首先引入redis的jai包

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

在userserviceimpl引用springboot自带的StringRedisTemplate

@Autowired
private StringRedisTemplate stringRedisTemplate;
在userserviceimpl中通过usermapper查询到用户名和密码等用户信息后
 

如果user != null ,把user实体类转换成json格式,redis是key/value格式,保证数据唯一性,所以key用uuid做key,user做value,确保唯一性

 
插入到redis后要在获取key的话要用到cookie了,把key存到cookie中,取的时候在cookie中取
 
//把user实体类转化成json格式
String userJoin = JSON.toJSONString(user);
if (user != null) {
//获取uuid
String uuid = UUIDUtils.getUUID();
//创建cookie
Cookie cookie = new Cookie("userCookie", uuid);
response.addCookie(cookie);
//把用户信息存入redis set(key,value,过期时长,过期格式) 设置三天过期
stringRedisTemplate.opsForValue().set("user" + "/" + uuid, userJoin, 3, TimeUnit.DAYS); return Msg.ok("");
} else { return Msg.failure("用户名或密码错误"); }

然后在usercontroller获取的时候

@RequestMapping(value = "/toMainPage")
public ModelAndView toMainPage(HttpServletRequest request, HttpServletResponse response) {
ModelAndView mv;
String struuid = null;
//获取cookie里面的uuid
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if (cookie.getName().equalsIgnoreCase("userCookie")) {
struuid = cookie.getValue();
}
} if (struuid == null) {
System.out.println("验证不通过"); System.out.println("UUID不存在"); } String userJson;
try {
//根据struuid,在redis中获取user信息 userJson = stringRedisTemplate.opsForValue().get("user" + "/" + struuid);
JSONObject pa = JSONObject.parseObject(userJson);
if ("管理员".equals(pa.getString("uRank")) && userJson != null) {
mv = new ModelAndView("index");
mv.addObject("user", pa.getString("uName"));
mv.addObject("id", pa.getString("id"));
mv.addObject("uPwd", pa.getString("uPwd")); } else if ("普通用户".equals(pa.getString("uRank")) && userJson != null) {
mv = new ModelAndView("pt_index");
mv.addObject("user", pa.getString("uName"));
mv.addObject("id", pa.getString("id"));
mv.addObject("uPwd", pa.getString("uPwd")); } else {
mv = new ModelAndView("redirect:login");
} } catch (Exception e) {
// TODO Auto-generated catch block
mv = new ModelAndView("redirect:login");
}
return mv;
}

SpringBoot整合redis把用户登录信息存入redis的更多相关文章

  1. Linux用户登录信息

    1.用户登录日志信息 /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间: /var/log/wtmp:记录当前正在登录和 ...

  2. .NET跨平台之旅:ASP.NET Core从传统ASP.NET的Cookie中读取用户登录信息

    在解决了asp.net core中访问memcached缓存的问题后,我们开始大踏步地向.net core进军——将更多站点向asp.net core迁移,在迁移涉及获取用户登录信息的站点时,我们遇到 ...

  3. Oracle 中记录用户登录信息

    我们可以使用 Oracle Audit 函数来记录用户登录信息,但是如果开放了 Audit 函数将会使 Oracle 性能下降,甚至导致 Oracle 崩溃.那我们如何才能记录用户登录信息呢?其实我们 ...

  4. php使用session来保存用户登录信息

    php使用session来保存用户登录信息 使用session保存页面登录信息 1.数据库连接配置页面:connectvars.php <?php //数据库的位置 define('DB_HOS ...

  5. linux基础之用户登录信息查看命令

    用户登录信息查看命令 1.who命令 同一个账号通过不同终端登录也属于不同的登录信息,这里不同的终端包含虚拟终端和模拟终端,因为一个用户通过一个终端登录属于一个session 基本介绍 打印当前系统上 ...

  6. Asp.Net MVC记住用户登录信息 下次登录无需输入密码

    有的时候做网站,就需要记住用户登录信息,下次再登录网站时,不用重复输入用户名和密码,原理是浏览器的cookie把状态给记住了! 那么具体是怎么实现的呢?下面博主将一部分代码贴出来,想要完整版的Demo ...

  7. net mvc中实现记录用户登录信息(记住登录效果)

    现记录用户登录信息(记住登录效果) 本文讲述了使用cookies实现网站记住登录效果,效果如下: 主要实现方法,当用户选择记住登录时建立cookies保存用户名和用户密码,当用户登录不选择记住登录时, ...

  8. 【SVN/Visual Studio】清除/更换AnkhSVN的用户登录信息

    问题: 在VS开发环境下,使用SVN做版本控制,用了TortoiseSVN和插件AnkhSVN.提交代码到SVN服务器时,发现用的是别人的SVN帐号,不是自己的号(比如该电脑之前是别人在使用).想要清 ...

  9. 设置获取用户登录信息的Seeion类

    /** * * 保存用户上下文信息 * 还可以获取session * */ public class UserContext { public static final String USER_IN_ ...

随机推荐

  1. Selenium IDE安装及环境搭建教程

    摘自https://blog.csdn.net/ywyxb/article/details/59103683 Selenium IDE环境部署- Firefox浏览器Firefox-ESR版本下载(推 ...

  2. String对象的常见方法

    String 对象方法 方法 描述 anchor() 创建 HTML 锚. big() 用大号字体显示字符串. blink() 显示闪动字符串. bold() 使用粗体显示字符串. charAt() ...

  3. 图解http协议学习笔记

    一 ,基本概念 1互联网相关的各协议族为tcp/ip协议(网际协议),tcp/ip  ftp,DNS(通过域名解析ip地址),http(超文本传输协议) 还有很多协议 ,只是列举比较熟悉的 2tcp/ ...

  4. LoadRunner之检查点

    一.什么是检查点 LoadRunner中检查点是用来判断脚本是否执行成功的.如果不加检查点,只要服务器返回的HTTP状态码是200,VuGen就认为脚本执行通过了.但是很多情况下服务器返回200并不代 ...

  5. Spring Boot-配置

    Spring 官方完整文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle Spring 官方配置文档:htt ...

  6. 【HANA系列】SAP HANA SQL获取当前日期

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL获取当前 ...

  7. 【Unity Shader】---数据类型和关键字

    一.基本数据类型:Cg支持7种基本的数据类型 1.float,32位浮点数据,一个符号位.浮点数据类型被所有的图形接口支持: 2.half,16位浮点数据: 3.int,32位整形数据 4,fixed ...

  8. 如何将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

    cat /etc/issue|tr '[:lower:]' [:upper:] >> /tmp/issue.out

  9. [19/10/14-星期一] Python中的对象和类

    一.面向对象 ## 什么是对象? - 对象是内存中专门用来存储数据的一块区域. - 对象中可以存放各种数据(比如:数字.布尔值.代码) - 对象由三部分组成: 1.对象的标识(id) 2.对象的类型( ...

  10. Redis 内存满了怎么办……

    我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小. 1.通过配置文件配置 通过在Redis安装目录 ...