잘 만들어둔줄 알았던 API들이 DB조회를 하는데 찾지 못하는 에러가 발생한다던가, JPA단에서 No Entity에러를 뿜어내기 시작했다.
여러번 테스트를 통해 기존에 Request Body에 Parameter들을 담아 요청받게 만들었던 GET API들을 URL에 함께 Parameter를 담아 RequestParam으로 전달받도록 바꾼 뒤 에러가 터져나온다는 것을 깨달았다.
유저 인증 방식에서 문제가 있었는데, 로그인시 DB에 의해 자동 생성된 id를 가지고 로그인을 수행하는 것이 아니라 입력받은 유저의 데이터를 서버에서 암호화를 수행해 id값을 만들어내 제공하는 방식으로 로그인을 구현했었다.
그러다보니 임의의 String 값이 id로 생성되는데 여기에 +나 /같이 URL 예약문자들이 끼워져 들어가면서 GET API를 호출할 때 문제가 발생한 것이다.
서비스 자체가 유저 Entity에 다른 모든 테이블들이 의존하다보니 ID 체계를 모두 뜯어 고치기엔 어려움이 있어 암호화를 통해 자동생성된 유저의 id와 함께 GET Method 호출용 id를 인코딩해 함께 response에 담아 리턴하는 방식으로 처리를 했다,,, 나중에 시간이 된다면 이 부분을 전체 뜯어 고치는 작업을 진행해야 될 것 같지만 일단은 정상적으로 작동하는 것으로,, 서비스 런칭이 최우선이기 때문에!
GET 메소드 예약문자에 대한 정보는 다음 블로그를 참고했습니다.
[HTTP] URL Encoding
HTTP URL HTTP URL은 다음과 같은 형식으로 구성되어 있습니다. http://localhost:8080/test.jsp?name=dhsense&age=13 여기서 http: 는 http 라는 프로토콜을 사용하겠다는 의미로 해석됩니다. // 뒤부터는 도메..
dololak.tistory.com
'Before > ego-api-server' 카테고리의 다른 글
[HANTA] CentOS7 openjdk 1.8 설치 (0) | 2020.08.26 |
---|---|
[HANTA] CentOS7 유저 생성 및 sudo 권한 부여 (0) | 2020.08.26 |
[HANTA] 도메인 구매 및 가상 서버 호스팅 + 네임 서버 변경 (0) | 2020.08.26 |