mirror of
https://github.com/chatopera/cosin.git
synced 2025-08-01 16:38:02 +08:00
Fix WebServerSessionConfigure
This commit is contained in:
parent
2b4b908afa
commit
3161fca335
@ -22,13 +22,18 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
|
||||
import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
|
||||
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
import org.springframework.session.data.redis.RedisFlushMode;
|
||||
import org.springframework.session.data.redis.RedisOperationsSessionRepository;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.session.FlushMode;
|
||||
import org.springframework.session.data.redis.RedisIndexedSessionRepository;
|
||||
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
|
||||
/**
|
||||
* maxInactiveIntervalInSeconds: 设置 Session 失效时间,
|
||||
@ -68,26 +73,20 @@ public class WebServerSessionConfigure {
|
||||
|
||||
@Primary
|
||||
@Bean
|
||||
public RedisOperationsSessionRepository sessionRepository(RedisTemplate<Object, Object> sessionRedisTemplate) {
|
||||
RedisOperationsSessionRepository sessionRepository = new RedisOperationsSessionRepository(sessionRedisTemplate);
|
||||
sessionRepository.setDefaultMaxInactiveInterval(maxInactiveIntervalInSeconds);
|
||||
sessionRepository.setRedisFlushMode(RedisFlushMode.IMMEDIATE);
|
||||
sessionRepository.setRedisKeyNamespace(RedisKey.CACHE_SESSIONS);
|
||||
return sessionRepository;
|
||||
public RedisIndexedSessionRepository redisIndexedSessionRepository(@NonNull RedisTemplate<Object, Object> sessionRedisTemplate) {
|
||||
RedisIndexedSessionRepository repository = new RedisIndexedSessionRepository(sessionRedisTemplate);
|
||||
repository.setDefaultMaxInactiveInterval(maxInactiveIntervalInSeconds);
|
||||
repository.setFlushMode(FlushMode.IMMEDIATE);
|
||||
repository.setRedisKeyNamespace(RedisKey.CACHE_SESSIONS);
|
||||
return repository;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RedisTemplate<Object, Object> sessionRedisTemplate() {
|
||||
JedisConnectionFactory factory = new JedisConnectionFactory();
|
||||
factory.setHostName(host);
|
||||
factory.setPort(port);
|
||||
factory.setDatabase(sessionDb);
|
||||
if (StringUtils.isNotBlank(pass)) {
|
||||
factory.setPassword(pass);
|
||||
}
|
||||
factory.setTimeout(timeout);
|
||||
JedisConnectionFactory factory = createJedisConnectionFactory(sessionDb);
|
||||
factory.afterPropertiesSet();
|
||||
RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object>();
|
||||
|
||||
RedisTemplate<Object, Object> template = new RedisTemplate<>();
|
||||
template.setKeySerializer(new StringRedisSerializer());
|
||||
template.setHashKeySerializer(new StringRedisSerializer());
|
||||
template.setConnectionFactory(factory);
|
||||
@ -97,18 +96,10 @@ public class WebServerSessionConfigure {
|
||||
|
||||
/**
|
||||
* 存储AuthToken
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public AuthRedisTemplate authRedisTemplate() {
|
||||
JedisConnectionFactory factory = new JedisConnectionFactory();
|
||||
factory.setHostName(host);
|
||||
factory.setPort(port);
|
||||
factory.setDatabase(tokenDb);
|
||||
if (StringUtils.isNotBlank(pass)) {
|
||||
factory.setPassword(pass);
|
||||
}
|
||||
factory.setTimeout(timeout);
|
||||
JedisConnectionFactory factory = createJedisConnectionFactory(tokenDb);
|
||||
factory.afterPropertiesSet();
|
||||
|
||||
AuthRedisTemplate template = new AuthRedisTemplate();
|
||||
@ -118,4 +109,20 @@ public class WebServerSessionConfigure {
|
||||
return template;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private JedisConnectionFactory createJedisConnectionFactory(int tokenDb) {
|
||||
RedisStandaloneConfiguration standaloneConfiguration = new RedisStandaloneConfiguration();
|
||||
standaloneConfiguration.setHostName(host);
|
||||
standaloneConfiguration.setDatabase(tokenDb);
|
||||
standaloneConfiguration.setPort(port);
|
||||
if (StringUtils.isNotBlank(pass)) {
|
||||
standaloneConfiguration.setPassword(pass);
|
||||
}
|
||||
JedisClientConfiguration jedisClientConfiguration = JedisClientConfiguration.builder()
|
||||
.connectTimeout(Duration.ofMillis(timeout))
|
||||
.readTimeout(Duration.ofMillis(timeout))
|
||||
.build();
|
||||
return new JedisConnectionFactory(standaloneConfiguration, jedisClientConfiguration);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -109,13 +109,13 @@ spring.redis.port=6379
|
||||
# Redis\u670D\u52A1\u5668\u8FDE\u63A5\u5BC6\u7801\uFF08\u9ED8\u8BA4\u4E3A\u7A7A\uFF09
|
||||
spring.redis.password=
|
||||
# \u8FDE\u63A5\u6C60\u6700\u5927\u8FDE\u63A5\u6570\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09
|
||||
spring.redis.lettuce.pool.max-active=-1
|
||||
spring.redis.jedis.pool.max-active=-1
|
||||
# \u8FDE\u63A5\u6C60\u6700\u5927\u963B\u585E\u7B49\u5F85\u65F6\u95F4\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09
|
||||
spring.redis.lettuce.pool.max-wait=-1
|
||||
spring.redis.jedis.pool.max-wait=-1
|
||||
# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5
|
||||
spring.redis.lettuce.pool.max-idle=20
|
||||
spring.redis.jedis.pool.max-idle=20
|
||||
# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5
|
||||
spring.redis.lettuce.pool.min-idle=10
|
||||
spring.redis.jedis.pool.min-idle=10
|
||||
# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u56E0\u4E3A\u6625\u677E\u5BA2\u670D\u542F\u52A8\u65F6
|
||||
# \u5360\u7528\u6BD4\u8F83\u5927\u7684\u65F6\u95F4\uFF0C\u6B64\u5904timeout\u503C\u5FC5\u987B\u8BBE\u7F6E\u4E3A0\u624D\u80FD\u6B63\u5E38\u542F\u52A8
|
||||
spring.redis.timeout=0
|
||||
|
Loading…
x
Reference in New Issue
Block a user