java如何在OAuth 2.0 Spring Boot中配置Redis会话?
我不熟悉Spring对Redis会话的配置,我对Redis使用了以下配置
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
//RedisConfig
@Bean
public JedisConnectionFactory redisConnectionFactory() {
JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();
redisConnectionFactory.setHostName(redisHost);
redisConnectionFactory.setPort(redisPort);
if (redisPass != null) {
redisConnectionFactory.setPassword(redisPass);
}
redisConnectionFactory.setUsePool(true);
return redisConnectionFactory;
}
@Bean
public RedisTemplate<?, ?> redisTemplate() {
RedisTemplate<?, ?> template = new RedisTemplate<>();
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new
LdapFailAwareRedisObjectSerializer());
template.setConnectionFactory(redisConnectionFactory());
return template;
}
@Bean
public RedisCacheManager redisCacheManager() {
RedisCacheManager cacheManager = new
RedisCacheManager(redisTemplate());
cacheManager.setUsePrefix(true);
cacheManager.setDefaultExpiration(240);
return cacheManager;
}
//Application.java
@Bean
public TokenStore tokenStore(RedisConnectionFactory
redisConnectionFactory) {
return new RedisTokenStore(redisConnectionFactory);
}
对于一个项目来说,这很好。但是,如果我在第二个项目中使用相同的配置来配置它,那么当我尝试运行第二个项目时,会出现以下错误
# 1 楼答案
尝试下面的redis示例,您可以在其中添加auth2配置。 https://github.com/Ravenloup/springboot-redis-session