老鬼的博客 来都来啦,那就随便看看吧~
springboot如何配置springsession的cookie相关属性
发布于: 2023-09-13 更新于: 2023-09-13 分类于:  阅读次数: 

一:springsession简介

1
2
3
4
Spring Session是Spring的项目之一,GitHub地址:https://github.com/spring-projects/spring-session 
Spring Session把servlet容器实现的httpSession替换为spring-session,专注于解决session管理问题。
Spring Session提供了集群Session(Clustered Sessions)功能,默认采用外置的Redis来存储Session
数据,以此来解决Session共享的问题。

二:springsesion的配置

1
2
3
4
5
6
7
8
# session配置
server:
session:
timeout: 30
cookie:
secure: true
http-only: true
store-type: redis # 使用redis存储session

三:springsession配置cookie相关属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.tohours.bdboot.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.DefaultCookieSerializer;


/**
* springsession的配置
*/
@Configuration
public class SpringSessionConfig {


//上下文
@Value("${server.servlet.context-path}")
private String contextPath;

//secure
@Value("${server.session.cookie.secure}")
private Boolean secure;

//http-only
@Value("${server.session.cookie.http-only}")
private Boolean httpOnly;


@Bean
public CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("JSESSIONID");
serializer.setCookiePath(contextPath);
serializer.setCookieMaxAge(3600);
serializer.setSameSite("None"); // SameSite
serializer.setUseHttpOnlyCookie(httpOnly);
serializer.setUseSecureCookie(secure);
return serializer;
}
}
*************感谢您的阅读*************