SpringBoot整合redis把用户登录信息存入redis
2019-12-24 09:45:15来源:博客园 阅读 ()
SpringBoot整合redis把用户登录信息存入redis
首先引入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; }
原文链接:https://www.cnblogs.com/kangshuolei/p/12091231.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- redis缓存 2020-06-12
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
- Spring Boot 2.3.0 新特性Redis 拓扑动态感应 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash