whynot-here / whynot-here-api-server

whynot-here 서비스 API 서버
3 stars 0 forks source link

[BE] feat: 인증/인가 jwt 적용 #88

Closed osj3474 closed 2 years ago

osj3474 commented 2 years ago

인증/인가 방식 논의를 거친 내용을 정리하여 pr을 드립니다.

<< jwt 인증 과정 >>

  1. Filter 레벨에서 자체적으로 등록한 CustomAuthorizationFilter 를 선 방문
  2. 화이트 리스트에 해당하는 path라면 bypass. (5번으로 이동)
  3. jwt토큰 검증 (secret값, 만료시간)
  4. SecurityContextHolder에 UserAccount 객체 담음
  5. Controller도착 후 서비스 로직 처리 (다음 pr에서 User획득하는 부분 추가 예정)
    • 3번, 4번 과정에서 예외 발생 시 ExceptionHandlerFilter 에서 예외 핸들링.
osj3474 commented 2 years ago

말씀 주신 부분 반영해보았습니다~~:)

새로운 인증/인가를 사용한 API 하나를 테스트로 만들어 두었습니다.

[POST] /v2/posts 공고 생성 API

그런데 테스트를 하실때 request Header에 토큰이 없어도 에러가 나지 않는다고 착각하실 수가 있는데, SecurityContextPersistenceFilter 의 98 line 디버깅 포인트 잡으시고 보시면 이전에 SecurityContextHolder에 Principal 객체를 담아져있는 것을 보실 수 있을 거에요~! (기본적으로 HTTP Session을 사용합니다.)

다시 리뷰 요청 드릴게요!! @doljae @maker-dasu

osj3474 commented 2 years ago

헉 넵넵!!! 다음 pr 토큰 생성 부분 드릴텐데 테스트 코드도 함께 올리겠습니닷!! 리뷰 감사해용 ㅎㅎㅎㅎ