Spring Security에서 RedisSerializer를 사용하면 생기는 문제점

2024. 8. 20. 23:25·Back-end

Spring Security 로그인을 처리하면, 사용자의 인증 정보를 관리하기 위해 SecurityContext 객체를 세션 자바 객체형태로 저장한다.

 

Spring Session과 Redis를 사용하여 세션을 관리하고 있다면, SecurityContext 객체는 Redis에 저장된다.

 

객체를 직렬화(객체->바이트 배열) 하여 저장하면 어떻게 될까?

 

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@Configuration
@EnableRedisHttpSession
public class RedisConfig {
    @Bean
    public RedisSerializer<Object> springSessionDefaultRedisSerializer() {
        return RedisSerializer.json();
    }
}

 

RedisSerializer.json을 사용하여 레디스에 객체->바이트로 변환되어 잘 저장되는 것을 확인할 수 있다.

 

하지만, 저장된 데이터를 다시 사용하려면 역직렬화(바이트 배열을 객체로 변화) 과정이 필요한데

SecurityContextImpl 클래스의 객체를 올바르게 생성할 수 있는 생성자가 없기 때문에 다시 객체로 돌아갈 수 없다.

결국, 세션에서 이 객체를 읽어올 수 없게 되며 애플리케이션이 정상적으로 동작하지 않고 다음과 같은 에러를 발생시킨다.

 

org.springframework.data.redis.serializer.SerializationException: Could not read JSON:Cannot construct instance of `org.springframework.security.authentication

 

 

 

'Back-end' 카테고리의 다른 글

JWT secret key 생성 방법  (0) 2024.07.27
'Back-end' 카테고리의 다른 글
  • JWT secret key 생성 방법
dev_ajrqkq
dev_ajrqkq
알고리즘 천재가 될 거야
  • dev_ajrqkq
    기록이 자산이다
    dev_ajrqkq
  • 전체
    오늘
    어제
    • 분류 전체보기 (147)
      • Front-end (0)
      • Back-end (11)
        • Spring (1)
        • Java (8)
      • CS (9)
        • 데이터베이스 (5)
        • 네트워크 (4)
      • Algorithm (80)
      • 이것저것 (0)
      • 버그잡기 (1)
      • TIL (37)
      • 후기 (1)
      • 취준 (0)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      TypeScript
      티스토리챌린지
      오블완
      항해99
      코딩테스트준비
      99클럽
      개발자취업
      Til
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.2
    dev_ajrqkq
    Spring Security에서 RedisSerializer를 사용하면 생기는 문제점
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.