从零开始java安全权限框架篇(六):springboot2.x整合spring session

一:springboot2.x整合spring session

  上一节,我们谈到了Security中如何去管理session问题,但是只限于单机模式。在这个过程中,我也尝试修改了使用Redis去共享session信息,但是由于security本身的封装,使得reddis进行反序列化出现很多的问题,先后使用了jackson 2和fastjson以及jdkjson等方式进行反序列化都出现或多多少的问题。后来查看了spring session官网(对,一定要看官网,即使对着chrome翻译,也要看官网)他是可以无缝整合spring security的。因此这里我们先整合springboot+springsession的整合。

 为什么要用spring session? 简单说明一下,主要就是应对集群环境下分发服务器比如nginx,将同一个请求分发到不同的机器上导致session不一致。

从零开始java安全权限框架篇(六):springboot2.x整合spring session_第1张图片

   其中将seesion的相关信息缓存到Redis中,进行序列化和反序列化很烦,然后spring session的官方文档提供了与是pring security的无缝连接。因此偷个懒直接用springboot + spring security +spring session

 

二:springboot2.x整合srping session

1.引入manen

  注意这里有一个问题,查看一些文档,发现整合有2种maven引入方式。

 (1)项目中本来就有Redis了,只需要引入spring session就行了,但是不建议这种方式,后面存取需要自定义很多东西

        
			org.springframework.boot
			spring-boot-starter-data-redis		
		
		
		
			org.springframework.boot
			spring-boot-starter-data-redis		
		

(2)直接引入session-redis,如下。并且这里并不会与原有的Redis冲突,即本来有Redis也不用删除,我用了这个方法

     
            org.springframework.session
            spring-session-data-redis
      

2.配置spring session

 配置这一步之前,默认项目Redis已经完好运行,如果没有自行百度springboot2.x整合Redis使用Config.java配置



package com.config.Seurity.session;

import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

/**
 *
 * ClassName:RedisSessionConfig 
* Reason: TODO ADD REASON.
* Date: 2019年9月5日 上午11:27:28
* @author Owner * @version * @since JDK 1.8 * @see */ @Configuration @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 300) public class RedisSessionConfig { }

3.开启2个Tomcat分别为8001和8002端口

 我这里使用Eclipse开启2个不同的端口:

 从零开始java安全权限框架篇(六):springboot2.x整合spring session_第2张图片

从零开始java安全权限框架篇(六):springboot2.x整合spring session_第3张图片

分别用8001和8002来测试端口号:

从零开始java安全权限框架篇(六):springboot2.x整合spring session_第4张图片

从零开始java安全权限框架篇(六):springboot2.x整合spring session_第5张图片

到这里就ok。

 

你可能感兴趣的:(从零开始)