Skip to content

Commit

Permalink
[ATR-595] feat: 세션 Redis 적용 (#287)
Browse files Browse the repository at this point in the history
  • Loading branch information
kim0527 authored Aug 6, 2024
1 parent 7406069 commit fce3805
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 1 deletion.
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@ dependencies {

//swagger - https://springdoc.org/
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'

// Session(Redis)
implementation 'org.springframework.session:spring-session-data-redis'
}

tasks.withType(JavaCompile).configureEach {
Expand Down
36 changes: 36 additions & 0 deletions src/main/java/run/attraction/api/v1/auth/config/RedisConfig.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
package run.attraction.api.v1.auth.config;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator;
import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@EnableRedisRepositories
@Configuration
Expand All @@ -21,5 +31,31 @@ public class RedisConfig {
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(host, port);
}

@Bean
public RedisTemplate<String,Object> redisTemplate() {
final RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer(objectMapper()));
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(RedisSerializer.java());
redisTemplate.setConnectionFactory(redisConnectionFactory());
return redisTemplate;
}

private ObjectMapper objectMapper() {
PolymorphicTypeValidator ptv = BasicPolymorphicTypeValidator
.builder()
.allowIfSubType(Object.class)
.build();

return new ObjectMapper()
.findAndRegisterModules()
.enable(SerializationFeature.INDENT_OUTPUT)
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false)
.registerModule(new JavaTimeModule())
.activateDefaultTyping(ptv, ObjectMapper.DefaultTyping.NON_FINAL);
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
@Component
@RequiredArgsConstructor
public class SessionFilter extends OncePerRequestFilter {
public static final String LOGIN_MEMBER = "LOGIN_MEMBER";
private static final List<String> WHITE_LIST = List.of(
"/api/v1/auth/login",
"/api/v1/auth/google",
Expand Down

0 comments on commit fce3805

Please sign in to comment.