문제 사항
프로젝트에서 요청받은 전체 Header 정보가 필요했다. JavaSpring에서 지원해 주는 @RequestHeader를 통해 전체 Header 정보를 HashMap에 담아 사용을 했다. 로컬 서버를 돌려 기능 테스트 해보니 정상적으로 HashMap에서 Header 정보를 가져오지 못하고 있었다.
✔ 이유
Header의 key값이 잘못 되었던 것이었다. AWS CF에서 전달해 주는 Header를 명세를 확인하고 정확히 입력을 했는데도 불구하고 실제 출력해 보니 대문자, 소문자 차이가 있었던 것이다.
✔ HttpServletRequest.getHeader는 정상적으로 돌아갔던 이유
그동안 사용했던 HttpServletRequest.getHeader는 대소문자 구분 없이 정상적으로 돌아갔다. 그래서 왜 이것이 가능한지 확인을 하고 현재 HashMap에 담겨있는 Header에도 적용을 해보기로 했다.
public boolean equalsIgnoreCase(String s)
HttpServletRequest.getHeader 내부에서는 key값을 비교를 할 때 대소문자 구분 없이 비교를 할 수 있는 equalsIgnoreCase를 사용을 하고 있었다. 그래서 그동안 사용할 때 대소문자 상관없이 정상적으로 Header값들을 가져올 수 있었던 것이다.
✔ 해결하기
Header를 HashMap으로 가져와서 각 Header 정보를 가져오려면, 위와 같이 대소문자 구분 없이 비교를 하면되었다. 그런데 별도의 구현을 하기보다는 기존에 있는 메서드를 사용하기로 했다.
'개발공부' 카테고리의 다른 글
[ IDE ] IntelliJ 터미널 한글이 깨지는 문제 (0) | 2023.06.13 |
---|---|
[ JAVA SPRING ] JavaSpring에서 STOMP 설정 (0) | 2023.05.28 |
[ JPA ] QueryDSL Select에 DTO 사용하는 경우 자동 조인 (0) | 2023.05.21 |
[ Java ] Boxed Type 비교 (0) | 2023.03.19 |
[ Java Spring ] List 정렬하기 (0) | 2022.12.19 |