spring session cookie序列化规则类DefaultCookieSerializer 作者:马育民 • 2020-07-22 21:52 • 阅读:10992 # 介绍 DefaultCookieSerializer 类是默认的cookie序列化规则类,该类很有用: - 设置是否使用base64编码。在浏览器看到的`SESSION`值与redis数据库看到的值不一致,就是因为spring session2.x默认开启base64编码 - spring-session 1.x默认 不使用 - spring-session 2.x默认 使用 - 通过该类可以设置 cookie的seesion key,默认为:`SESSION` - 设置cookie的path # springboot配置方式 在配置类中增加下面方法 ``` @Bean public DefaultCookieSerializer getDefaultCookieSerializer() { DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer(); //cookieSerializer.setDomainName("mydomain.com"); cookieSerializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); cookieSerializer.setCookieName("SESSION"); cookieSerializer.setCookiePath("/"); cookieSerializer.setUseBase64Encoding(false); return cookieSerializer; } ``` # spring mvc配置方式 ``` ``` # 解释 - domainNamePattern : 域名的正则表达式。`^.?\\.(\\w\\.[a-z]+)$` 是个通用写法。如果正则表达式不匹配,则不会设置任何域。如果正则表达式匹配,则第一个分组将用作域。例如:`https://child.mydomain.com`的请求会将域设置为`mydomain.com`。`http:// localhost:8080 /`或`https://192.168.1.100:8080/`的请求将不对域名进行处理。因此,在切换域名时,不需要再做任何修改。 - domainName : 域名。设置成你想使用的域名。应设置成项目所在域名的某个父级域名。 - cookieName : session id的cookie名称。 - cookiePath : cookie path。 - useBase64Encoding : 是否使用base64将session id进行编码。 spring-session 1.x默认 不使用 spring-session 2.x默认 使用 # 让浏览器SESSION值与redis的值一致 -- 禁用base64编码 增加配置类 ``` @Configuration public class Config { @Bean public DefaultCookieSerializer getDefaultCookieSerializer() { DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer(); // cookieSerializer.setDomainName("mydomain.com"); // cookieSerializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); // cookieSerializer.setCookieName("SESSION"); // cookieSerializer.setCookiePath("/"); //设置cookie的path为/,即:根路径 // cookieSerializer.setUseBase64Encoding(false); cookieSerializer.setUseBase64Encoding(false); return cookieSerializer; } } ``` 浏览器中的cookie,redis数据库中的值 ,是一致的,如下图: [![](https://www.malaoshi.top/upload/pic/springsession/QQ20200722-220814.png)](https://www.malaoshi.top/upload/pic/springsession/QQ20200722-220814.png) 感谢: https://blog.csdn.net/sayyy/article/details/104199215 原文出处:http://malaoshi.top/show_1EF5w5s5wvDt.html