해당 게시글은 "프로그래머스 데브코스 4기"의 팀 내 프로젝트 기록용으로 TECH BLOG에 직접 작성한 글입니다.
[문제 상황]
팀원이 작업하시면서 이런 문제가 발생했다고 하셨다!
그래서 직접 확인해 보니
로컬에서는 비밀번호를 잘 못 입력했을 때 “자격 증명에 실패하였습니다.” 였고 서버에서는 위와 같이 “Bad credentials”로 응답이 왔다..
왜 그럴까 생각을 해보았는데에..
계속 보니 로컬에서 오는 응답과 서버에서 오는 응답 이 둘의 의미가 같은 것 같았다.
그래서 어림짐작으로 로컬은 한국이고 서버는 영어로 되어있나..? 싶었는데 역시 맞았다
→ 근거는? 위 블로그를 보면서 “이는 Spring Security 자체에 국제화 메시지 처리가 되어 있기 때문” 이라는 말을 보았고 해당 파일을 직접 찾아보았다
KR 파일 4번째줄에 내가 응답받는 메시지가 있었다!
변수명은 AbstractUserDetailsAuthenticationProvider.badCredentials
EN 파일 4번째줄에는 서버에서 응답받는 Bad credentials 메시지가 있었다!
마찬가지로 AbstractUserDetailsAuthenticationProvider.badCredentials
의 변수명을 가졌다
결론
결국 서버와 로컬의 국제화 차이로 인한 언어가 다른 메시지가 전송된 것 이었다
서버와 로컬에서 다른 메시지가 아닌 똑같은 메시지를 전송하고 있는 것이 결론! .. 다행이다.
참고
나는 “자격 증명에 실패하였습니다”라는 메시지를 보내라고 설정한 적이 없다.
즉, default 메시지로 해당 파일(messages_ko_KR.properties)에서 찾아서 저렇게 전송되는 것이다.
default 메시지로 전송되는 것을 원하지 않는다면 커스텀 메시지 properties 파일을 만들어서 전송하고 싶은 메시지를 설정한 뒤 해당 메시지가 전송되도록 커스텀할 수도 있더라 → https://shinsunyoung.tistory.com/79
Reference
두 분 다 정말 아리가또..
'Web > Spring' 카테고리의 다른 글
[Spring Security] jwt RefreshToken 구현하기 (1) | 2024.01.29 |
---|---|
[Spring Security] jwt 401 응답 + jwt 예외 핸들러 만들기 (1) | 2023.11.29 |
[Spring Security] @AuthenticationPrincipal에 null값 들어오는 문제 해결 방법 (2) | 2023.11.16 |
[인프런] 스프링부트 개념정리(이론) - 1 (1) | 2022.10.05 |
[3] 스프링부트로 웹 서비스 출시하기 - 3. SpringBoot & Handlebars로 화면 만들기 (0) | 2022.08.13 |