인프런 커뮤니티 질문&답변
JWT 필터구현
작성
·
95
0
안녕하세요
Jwt필터를 GenericFilterBean 대신 OncePerRequestFilter를 상속 받고
OncePerRequestFilter의 shouldNotFilter 메서드를 구현하여 JWT 검증을 제외할 특정 경로를 추가 한다면
스프링 시큐리티의 설정( requestMatcher().permitAll())과 중복되는 기능일까요?
퀴즈
백엔드에서 비즈니스 로직을 처리하고 엔티티를 조립하는 주요 책임이 있는 계층은 무엇일까요?
컨트롤러
서비스
레포지토리
도메인
답변 2
0
안녕하세요~!
말씀해주신 질문의 요지가 GenericFilter와 OncePerRequestFilter 를 상속받는 방식에 있어서, 웹소켓 요청 관련하여 인증처리의 차이를 낳을수 있냐로 이해해도 될까요?
그 질문이 맞다면, 두 필터 방식중 어떤걸 사용한다 하더라도, 웹소켓 관련 모든 요청의 경우에는 permitAll로 흘려 보내고 StompHandler에서 인증처리하는게 옳습니다. 즉, 현재 코드와 동일한 방식으로 코딩해야 한다고 이해하시면 될것 같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. SunJ님.
질문해주신 내용은 Spring Security에서의 필터링 및 인증 설정에 관한 것입니다. 먼저 OncePerRequestFilter와 GenericFilterBean의 차이점을 간략히 설명드리겠습니다.
OncePerRequestFilter: 이 필터는 요청 당 한 번만 실행되도록 보장합니다. 이는 특히 요청이 한 번 이상 필터 체인을 통과할 수 있는 상황에서 유용할 수 있습니다.
GenericFilterBean: 기본적인 필터의 구현을 제공하며, 여러 요청에 대해 동일한 작업을 반복적으로 수행합니다.
질문에서 언급하신 shouldNotFilter 메서드를 통해 특정 경로에 대한 JWT 검증을 제외할 수 있습니다. 이는 Spring Security 설정의 requestMatcher().permitAll()과 비슷한 기능을 하게 됩니다. 두 방법 모두 특정 경로에 대한 인증 및 인가 절차를 생략하기 위해 사용될 수 있으나, 사용 방법과 적용되는 문맥에서 차이가 있습니다.
shouldNotFilter사용: 특정 필터가 실행되지 않도록 조건을 정의할 수 있으며, 보다 필터 단위의 세밀한 제어가 가능합니다.requestMatcher().permitAll()사용: Spring Security의 설정에서 특정 경로에 대한 접근 허용을 선언적으로 설정합니다. 이는 보기에 더 개관적이며 웬만한 경우에 기본적인 요구는 충족시킵니다.
결론적으로, 두 방법은 중복된 기능을 하는 것은 아니지만, 비슷한 목적을 달성할 수 있습니다. 필터 레벨에서의 제외 설정은 보다 세부적이고 세밀한 제어를 가능하게 하며, Spring Security 설정에서의 접근 제한은 보안 정책에 대한 전반적인 설정을 처리하는 데 유용합니다.
유사한 주제에 대한 추가적인 내용을 확인하시려면 다음 답변을 참고할 수 있습니다:
- “Spring Security에서 특정 경로의 필터 제외 처리” - 각 구성요소의 차이점 및 필터링 방법에 대한 설명이 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





