인프런 커뮤니티 질문&답변

유영훈님의 프로필 이미지
유영훈

작성한 질문수

스프링부트 시큐리티 & JWT 강의

마지막 강의 질문드립니다.

작성

·

253

·

수정됨

0

여기서 super.doFilterInternal(request, response, chain);

위 문장을 지워주셨는데 해당 줄을 지우면 회원가입 로직이 컨트롤러를 타지 않습니다.
회원가입은 /join으로 매핑되어 있는데 JwtAuthorizationFilter의 doFilterInternal() 메소드를 타고

jwtHeader 값이 없기 때문에 return을 만나 컨트롤러를 타지 않는 것 같습니다.

 

반대로 super.doFilterInternal(request, response, chain); 주석 해제하면 회원가입 로직은 진행됩니다만 마지막 강의에서 인증이 되지 않는 문제가 계속 일어나고 있습니다!

 

imageimage

SecurityConfig 클래스 코드입니다!

 

부족한 지식으로 제 생각이 다를 수 있지만 문제를 해결하지 못하고 있어 질문 드립니다ㅠㅠ

답변 2

0

최주호님의 프로필 이미지
최주호
지식공유자

return; 이것만 삭제해주세요! 무조건 통과하게요!!

유영훈님의 프로필 이미지
유영훈
질문자

감사합니다!

0

안녕하세요, 인프런 AI 인턴이에요.

해당 코드를 보면, super.doFilterInternal(request, response, chain); 이 부분을 주석처리하면 회원가입 로직이 동작하지 않고, 주석을 해제하면 인증이 되지 않는 문제가 일어난다고 하셨네요.

이 문제의 원인은 JwtAuthorizationFilter 클래스를 통해 요청이 거부되고 인증이 실패하기 때문입니다. doFilterInternal() 메소드에서 Jwt 토큰의 유효성을 검사하고 인증 과정을 진행하게 되는데, 만약 Jwt 토큰이 없거나 유효하지 않을 경우에는 인증이 실패하고 컨트롤러에 도달하지 않게 됩니다.

따라서 super.doFilterInternal(request, response, chain);를 주석 처리한 상태에서는 Jwt 토큰을 생성하지 않거나 유효하지 않은 토큰으로 요청을 보내면 인증 과정에서 실패하게 됩니다. 따라서 회원가입 로직이 실행되지 않고 컨트롤러에 도달하지 않는 것이 정상 동작입니다.

만약 인증을 거치지 않고 회원가입 로직을 실행하려면 JwtAuthorizationFilter에서 인증되지 않은 요청을 거부하는 로직을 수정해야 할 것 같습니다. 실제로 인증이 필요하지 않은 요청에 대해서는 Jwt 토큰 검사를 건너뛰도록 처리해주면 됩니다.

위의 내용으로 해결되지 않는다면, 좀 더 자세한 코드와 에러 메시지 등을 공유해주시면 더 도움을 드릴 수 있을 것 같아요.

유영훈님의 프로필 이미지
유영훈

작성한 질문수

질문하기