【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration;
import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.DefaultCookieSerializer;
@Configuration
public class SessionConfig {
@Bean
public RedisHttpSessionConfiguration redisHttpSessionConfiguration() {
RedisHttpSessionConfiguration config = new RedisHttpSessionConfiguration();
config.setMaxInactiveIntervalInSeconds(1800); // 设置session的失效时间
return config;
}
@Bean
public CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("MY_SESSIONID"); // 自定义cookie名称
serializer.setCookiePath("/"); // 设置全站有效的cookie路径
serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); // 设置cookie的域名
serializer.setUseHttpOnlyCookie(true); // 设置只能通过http访问
return serializer;
}
}
这段代码定义了一个配置类SessionConfig
,其中包含了redisHttpSessionConfiguration
方法来配置Spring Session使用Redis存储session数据,并设置了session的失效时间。同时,cookieSerializer
方法自定义了cookie的名称、路径、域名和是否只能通过HTTP访问等属性。这样,开发者可以通过集中管理session来维护用户的登录状态,并通过cookie来实现用户信息的传递和验证。
评论已关闭