피드로 돌아가기
Four Bugs Stood Between Me amd "Sign in with Google"
Dev.toDev.to
Security

OAuth2 연동 과정의 환경 설정 및 프레임워크 동작 원리 분석을 통한 인증 장애 해결

Four Bugs Stood Between Me amd "Sign in with Google"

Dogukan Karademir2026년 6월 26일4intermediate

Context

Spring Security 기반의 OAuth2 기반 Google 로그인 구현 과정에서 발생한 인증 및 권한 부여 장애 분석. .env 설정부터 프레임워크 내부 서비스 호출 구조까지의 불일치로 인한 시스템 병목 발생.

Technical Solution

  • CRLF 줄 바꿈 문자로 인한 Client ID 오염 해결을 위해 LF 설정 변경 및 요청 값 정밀 검증 수행
  • Spring Security의 OIDC 흐름을 분석하여 DefaultOAuth2UserService 대신 OidcUserService 상속 구조로 변경해 사용자 저장 로직 활성화
  • Spring Security 6+의 지연된 쿠키 쓰기 특성을 해결하기 위해 모든 요청에서 CSRF 토큰 읽기를 강제하는 전용 Filter 도입
  • 브라우저 DevTools의 Partitioned Cookie 오인으로 인한 토큰 값 오류를 식별하고 Unpartitioned Cookie를 통한 검증 수행
  • 라이브러리 충돌 가능성이 있는 spring-dotenv 의존성 제거를 통한 환경 변수 로드 안정성 확보

1. 환경 변수 설정 시 OS별 Line Ending(CRLF vs LF) 차이로 인한 보이지 않는 문자 포함 여부 확인

2. Spring Security OAuth2 구현 시 OIDC 표준 준수 여부에 따른 적절한 Service 인터페이스 상속 클래스 선정

3. Security 6+ 버전의 CSRF Cookie 생성 시점(Deferred write)을 고려한 필터 설계 검토

4. 네트워크 디버깅 시 DevTools의 시각적 값보다 실제 Outgoing Request의 Raw 데이터를 우선 신뢰

원문 읽기