본문 바로가기
TIL & WIL

[TIL] #96. 231218

by mmm- 2023. 12. 18.

어제 목표 & 오늘 완료한 한 일 

  • 알고리즘 문제
  • 자바 종합 문법 복습 (3주차)
  • 스프링 기초 개인과제 해설 강의
  • 스프링 심화 과제 (테스트 코드 작성)
  • JPA 심화 강의듣기
  • 플러스 주차 복습 과제
  • CS 공부 (운영체제)


내일 목표

  • 알고리즘 문제
  • 자바 종합 문법 복습 (3주차)
  • 스프링 기초 개인과제 해설 강의
  • 스프링 심화 과제 (테스트 코드 작성)
  • JPA 심화 강의듣기
  • 플러스 주차 복습 과제
  • CS 공부 (운영체제)

 

 

발생한 오류와 해결 방법

1️⃣. WebSecurity에서 requestMachers("/api/users/**").permitAll()을 해줘 해당 경로로 시작하는 요청을 모두 접근 허가 해줬는데도 불구하고 로그인, 회원가입시 토큰관련 에러가 발생하는 것을 확인할 수 있었다. 에러 메시지로 봤을 때, 에러가 발생하는 쪽은 JwtAuthorizationFilter에 doFilterInternal() 메서드의 토큰 검증 과정에서 발생하는 에러였다. 그래서 회원가입과 로그인시에는 해당 과정을 거치지 않고 다음 필터로 가도록 하기 위해 getRequestURI()를 이용해 request의 url을 얻었다. 그리고 해당 url이 /api/users로 시작하면 다음 필터로 가도록 하고, 그렇지 않으면 검증과정을 거치게끔 수정했다. 그 결과 로그인을 성공했다는 문구를 볼 수 있었다. 하지만 로그인 후 바로 만료된 JWT 토큰이라는 에러가 발생했다. 그래서 만료기한 관련 코드를 유심히 살펴보니 createToken() 메서드가 실행된 시점부터 60분이니까 TOKEN_TIME을 더해줘야 하는데 빼주는 실수를 하여서 그런 것이었다.

그 두 부분을 수정하니 회원가입과 로그인을 문제없이 진행할 수 있었다.

 
 
2️⃣. 로그인 실패시 "닉네임 또는 패스워드를 확인해주세요." 라는 에러 메시지를 response에 포함하기 위해 response.getWriter().write();를 해줬는데 포스트맨에서 body부분에 이런 식으로 보였다.

response.getWriter().write(); 전에 ContentType을 json형식으로 설정하고 utf-8로 인코딩해주면 해결되는 문제였다. 수정한 코드는 아래와 같다.

        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write("닉네임 또는 패스워드를 확인해주세요.");

 

 

참고한 블로그

1) https://zico8282.tistory.com/entry/JSP-Servlet-Servlet%EA%B8%B0%EB%B3%B8-2

 

 

느낀점

어제부터 계속 해결하지 못했던 에러를 오늘 드디어 해결했다..! 사실 어제는 해당 에러가 발생했을 때, 계속 전에 작성했던 코드랑 비교해보기만 했는데 오늘 다시 천천히 에러를 읽어보니 문제를 해결할 수 있었다. 그런데 전에 작성한 코드는 해당 부분을 넣어주지 않아도 알아서 검증 과정을 거치지 않았는데 이번에는 permitAll()을 해줬는데도 불구하고 이러한 에러가 발생한 것인지 궁금하다. 아쉽게도 이것에 대해서는 아직 알아내지 못했다. 맞는지는 모르겠지만, 내 생각에는 이전에 작성한 코드는 토큰을 헤더에 넣어주는 방식이었고 이번에는 쿠키에 저장해서 다루는 방식이라 이러한 차이가 발생한 것 같다.

그리고 2번째 에러에 대해서는 사실 이전에 다른 개인과제를 할 때 발생한 적이 있었다. 그런데 그 때는 해결방법을 찾아볼 생각은 안하고 그냥 문장을 영어로 작성했던 기억이 있다. 인증/인가 부분은 잘 이해하지 못한 부분이 많기도 하고 어려워 하나하나 주석문을 작성하느라 며칠이 걸렸지만, 오늘 진행한 CRU 부분은 이전에도 계속 했었고 이에대한 이해도가 보다 높기 때문에 정말 빨리 해결할 수 있었다. 인증/인가 부분을 하면서 시간이 오래 걸리기는 했어도, 이전보다 이해도가 높아졌을 뿐만 아니라 어느 부분을 더 공부하면 좋을지 깨닫게 되는 계기가 되었기 때문에 의미없는 시간이라는 생각은 들지 않는다.

'TIL & WIL' 카테고리의 다른 글

[TIL] #97. 231219  (1) 2023.12.19
[WIL] #14. 231211 ~ 231217  (0) 2023.12.18
[TIL] #95. 231217  (0) 2023.12.17
[TIL] #94. 231216  (0) 2023.12.17
[TIL] #93. 231215  (0) 2023.12.15