微服务多模块下解决session共享问题

 

在微服务中拆分模块中,往往需要用到session,但是网关会把session过滤掉,此时我们就需要用到session共享机制了。

服务提供者中做以下配置

1、导入依赖

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

2、开启session共享(是通过redis来解决的)

spring:
session:
  store-type: redis #开启session共享

3、配置redis

redis:
  host: localhost
  port: 6379
  password: 123456

4、在启动类中开启session共享

@SpringBootApplication
@EnableRedisHttpSession //开启session共享

 

 

网关中需要做同样的配置

1、导入依赖

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

2、开启session共享(是通过redis来解决的)

spring:
session:
  store-type: redis #开启session共享

3、配置redis

redis:
  host: localhost
  port: 6379
  password: 123456

4、配置网关

需要在网关中配置不过滤session

zuul:
routes:
  user:
    path: /user/**
    serviceId: CLOUD-MALL-USER
sensitive-headers: #把sensitive-headers设置为空,session不过滤

5、在启动类中开启session共享

@SpringBootApplication
@EnableFeignClients
@EnableZuulProxy
@EnableRedisHttpSession //开启session共享

 

posted @ 2022-03-12 18:51  UnXun  阅读(622)  评论(0)    收藏  举报