https://github.com/TheOne-team-1/TheOne-Bottle-Shop
GitHub - TheOne-team-1/TheOne-Bottle-Shop: 주류 커머스 플랫폼 백엔드 구현하기
주류 커머스 플랫폼 백엔드 구현하기. Contribute to TheOne-team-1/TheOne-Bottle-Shop development by creating an account on GitHub.
github.com
1. Troubleshooting: Jackson Library Package Conflict
문제: ObjectMapper가 com.fasterxml.jackson이 아닌 tools.jackson 패키지 경로를 참조하여 런타임 에러 발생.
원인: 최신 라이브러리 의존성(Jackson 3.x 또는 특정 도구 모음)으로 인해 표준 패키지 경로가 변경됨.
해결: CustomAuthenticationEntryPoint 및 CustomAccessDeniedHandler에서 import tools.jackson.databind.ObjectMapper;로 경로를 명시적으로 수정하여 JSON 직렬화 정상화.
2. Spring Security & JWT 예외 처리 고도화
상세 에러 코드 설계: 단순 401/403 응답을 넘어, 클라이언트가 대응할 수 있도록 AuthExceptionEnum을 통해 세부 코드(A001~A005) 정의.
A003: 만료된 토큰 (Refresh Token 재발급 트리거)
A005: 토큰 누락 (로그인 유도)
에러 전달 아키텍처:
Filter: request.setAttribute("exception", Enum)을 통해 인증 단계에서 발생한 구체적인 예외 정보를 HttpServletRequest에 담아 전달.
EntryPoint: 전달받은 attribute를 동적으로 읽어 BaseResponse 규격에 맞춰 클라이언트에게 전송.
3. 데이터 무결성 및 보안 필터 체인 최적화
Role 접두사 관리: JWT에서 추출한 role 정보에 ROLE_ 접두사를 동적으로 결합하여 SimpleGrantedAuthority 주입, SecurityConfig의 hasRole() 검증과 일치시킴.
필터 순서: JwtAuthenticationFilter를 UsernamePasswordAuthenticationFilter 앞에 배치하여 Stateless 환경에서의 인증 우선순위 확립.
추가로, 채팅기능 개발을 더 담당하게 되어 채팅 설계까지 하는 하루였다.
쉽지않다. 내가 생각하는 엔티티 설계와는 차이가 좀 있다.
내일 정확히 설계후 포스트 하도록 하겠다!
'spring_2기[본캠프] > 과제' 카테고리의 다른 글
| [과제] Spring 플러스 프로젝트 Day 8 (0) | 2026.03.19 |
|---|---|
| KODEKATA알고리즘 CODEKATA DAY41 (0) | 2026.03.18 |
| [과제] Spring 플러스 프로젝트 Day 6 (0) | 2026.03.17 |
| [과제] Spring 플러스 프로젝트 Day 5 (0) | 2026.03.16 |
| [과제] Spring 플러스 프로젝트 Day 4 (0) | 2026.03.13 |