목록2025/06/17 (2)
che01 님의 블로그
개념Spring Security에서 현재 로그인한 사용자 정보를 자동으로 주입해주는 어노테이션사용법@GetMapping("/api/profile")public ResponseEntity getProfile(@AuthenticationPrincipal CustomUserDetails userDetails) { Long userId = userDetails.getId(); String email = userDetails.getUsername(); return ResponseEntity.ok(Map.of("userId", userId, "email", email));} 주의사항인증 안된 사용자는 userDetails가 null반드시 인증이 필요한 경로에서만 사용내부 동작// 이 코드를 ..
JWT 필터 트러블슈팅 문제 상황 개요JWT 토큰을 이용한 인증 필터 구현 중 유저 ID 타입 불일치와 필터 중복 호출 문제가 발생했다.문제 1: 유저 ID 타입 불일치로 인한 인증 실패증상JWT 토큰에서 유저 ID를 추출했지만 데이터베이스에서 유저를 찾지 못함"해당 유저가 없습니다" 예외가 지속적으로 발생SecurityContext에 유저 정보가 저장되지 않음원인 분석데이터베이스의 User 엔티티 ID는 Long 타입으로 설계되어 있지만, JWT 토큰에서 추출한 사용자 ID는 String 타입이었다. JPA Repository의 findById() 메서드가 타입 불일치로 인해 올바른 매칭을 수행하지 못했다.문제 코드// 기존 코드 - 타입 불일치 발생String userId = jwtUtil.extra..