基于SpringBoot,SpringSession和redis的会话共享
来源:互联网 发布:五十知天命六十耳顺 编辑:程序博客网 时间:2024/06/05 20:46
安装redis
$ wget http://download.redis.io/releases/redis-4.0.1.tar.gz$ tar xzf redis-4.0.1.tar.gz$ cd redis-4.0.1$ make
配置redis.conf,允许外部连接使用IntelliJ IDEA创建Spring Boot工程,选择web, redis, session.
LoginController.java
package com.example.springsessiondemo;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;@Controllerpublic class LoginController { @RequestMapping("/") @ResponseBody public String home(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User user = (User) session.getAttribute("user"); if (user == null){ return "用好未登录" + session.getId(); } else { return "用好已登录" + session.getId(); } } @RequestMapping("/login") @ResponseBody public String login(HttpServletRequest request){ User user = new User(); user.setUsername("chf"); user.setPassword("pass"); request.getSession().setAttribute("user", user); return "登录成功 " + request.getSession().getId(); }}
创建文件config.java
@Configuration@ImportResource(locations={"classpath:spring.xml"})public class Config {}
配置文件application.yaml
server: port: 8000spring: session: store-type: redis redis: host: 10.0.0.201 port: 6379 password:
配置文件spring.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="defaultCookieSerializer" class="org.springframework.session.web.http.DefaultCookieSerializer"> <property name="domainName" value="example.com"/> <property name="cookieName" value="JSESSIONID"/> <property name="cookiePath" value="/" /> <!-- <property name="domainNamePattern" value="^.+?\.(\w+\.[a-z]+)$"></property>--> </bean> <bean id="redisHttpSessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"> <property name="maxInactiveIntervalInSeconds" value="1800" /> <property name="cookieSerializer" ref="defaultCookieSerializer"/> </bean></beans>
配置hosts文件
127.0.0.1 www.example.com
127.0.0.1 passport.example.com
运行程序,通过浏览器访问passport.example.com:8000
访问www.example.com:8000
JSESSIONID的内容相同,说明实现了会话共享。
接下来在passport进行登录
切换到www
一个简单的单点登录系统就实现了。
源代码工程
https://github.com/chenhaifeng2016/springsessiondemo
阅读全文
0 0
- 基于SpringBoot,SpringSession和redis的会话共享
- springboot利用springsession实现redis共享session,并且自定义sessionid
- SpringBoot(八)SpringBoot整合springsession实现分布式session共享
- spring boot 学习(十四)SpringBoot+Redis+SpringSession缓存之实战
- SpringSession和Redis实现Session跨域
- mybatis+spring+springmvc+springsession + redis实现session共享配置
- SpringSession使用redis存储HttpSession(共享session)
- SpringBoot+Shiro+SpringSession的简单集成配置简要步骤
- 基于redis的坐席调度-会话断线
- tomcat7和tomcat8 基于redis的session共享
- 基于Spring session 和 redis 的session共享问题
- springsession使用redis
- 利用redis和springsession实现在线人数统计
- 分布式架构下的会话追踪实践【基于Cookie和Redis实现】
- SpringSession集成redis实现session共享(No bean named 'springSessionRepositoryFilter' available)
- 基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【三】【整合swagger2和druid】
- springmvc+springsession实现session共享
- Tomcat7基于Redis的Session共享
- angularjs中作用域事件的路由与广播
- 堆排序
- tomcat换端口命令
- 自动化脚本腾讯云配置集群(四)自动化安装从节点的JDK+Hadoop
- 暑假集训 and 省赛总结
- 基于SpringBoot,SpringSession和redis的会话共享
- 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 获取同目录下多文件Hash值
- Java面试复习(四)
- poj3278 Catch That Cow
- js中的Date对象
- Linux初窥:软件包管理之(yum与源码包安装)
- zhihu-spider开源项目使用技术详
- asp.net图片上传