【发布时间】:2019-03-07 19:27:32
【问题描述】:
我正在尝试从 Spring Boot 连接到加密的传输中 ElastiCache 集群以用于会话存储库。我有适用于未加密集群的代码,但是当我打开 ssl 时我无法让它工作。这是我的代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.session.ExpiringSession;
import org.springframework.session.SessionRepository;
import org.springframework.session.data.redis.config.ConfigureRedisAction;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
import org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration;
import org.springframework.session.web.http.SessionRepositoryFilter;
@Configuration
@EnableRedisHttpSession
@ConditionalOnProperty(value = "spring.session.enabled", havingValue = "true")
public class RedisSessionConfig extends RedisHttpSessionConfiguration {
private final String NAMESPACE = "myname";
public RedisSessionConfig() {
// when extending RedisHttpSessionConfiguration to override the repository filter
// we need to manually set the namespace
this.setRedisNamespace(NAMESPACE);
}
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
@Bean
public static ConfigureRedisAction configureRedisAction() {
return ConfigureRedisAction.NO_OP;
}
@Bean
@Override
public <S extends ExpiringSession> SessionRepositoryFilter<? extends ExpiringSession> springSessionRepositoryFilter(SessionRepository<S> sessionRepository) {
return super.springSessionRepositoryFilter(new SafeDeserializationRepository<>(sessionRepository, redisTemplate, NAMESPACE));
}
}
和配置
spring:
redis:
url: mycluster.id.region.cache.amazonaws.com:port
有人知道怎么做吗?
【问题讨论】:
标签: java spring-boot ssl spring-data-redis amazon-elasticache