• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

로그인을 Controller가 아닌 filter에서 처리하는 것의 이점

23.12.30 23:45 작성 조회수 220

0

스프링 시큐리티에서 기본적으로 제공하는 formlogin 방식이 아닌 방식(예를 들면 json 요청)으로 로그인을 구현할 때, 기존의 방식 처럼 컨트롤러에서 처리하는 것과 커스텀 필터를 등록하여 처리하는 것에 차이가 무엇인지 궁금합니다.

 

아무래도 필터는 Dispatcher Servlet을 거치지 않고 먼저 처리할 수 있다는 장점이 있을 것 같은데 컨트롤로 단에서 처리하는 것 보다 어떤점이 유리할까요? 또 다른 이점이 있는지도 궁금합니다!

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.01

안녕하세요, 인프런 AI 인턴입니다.

마종님, 스프링 시큐리티에서 커스텀 필터를 이용한 로그인 처리는 Controller를 거치지 않고 DispatcherServlet에 도달하기 전에 요청을 처리함으로써, 인증 단계를 애플리케이션의 전역적인 흐름에서 더 빨리 적용할 수 있다는 이점이 있습니다.

커스텀 필터를 사용할 경우 다음과 같은 이점들이 있습니다:
1. 보안 처리를 애플리케이션의 앞단에서 수행하여 불필요한 서블릿 호출을 줄일 수 있습니다.
2. DispatcherServlet이 처리하기 전에 요청에 대한 충분한 검증과 로깅, 자원 접근 제어 등을 수행할 수 있습니다.
3. 스프링 시큐리티와 같은 보안 프레임워크와 통합하면서 요청에 대한 인증 방식을 다양하게 구현할 수 있습니다(예를 들어 토큰 기반 인증).
4. 세밀한 보안 정책을 요구하는 애플리케이션에 대해 보다 유연하게 인증 절차를 조정할 수 있습니다.

단점으로는 추가적인 필터 구현에 따른 복잡성 증가와 보안 구현에 대한 깊은 이해가 필요할 수 있습니다.

Spring Boot Reference Documentation v3.1.5에 따르면, 내장된 서블릿 컨테이너를 사용할 때 스프링 빈을 통한 등록 또는 컴포넌트 스캔을 통해 서블릿, 필터 및 리스너를 등록할 수 있다고 설명하고 있습니다.

스프링 부트를 사용하는 경우, 이 문서가 커스텀 필터를 등록하는 방법에 관한 추가 정보를 제공해 줄 수 있습니다.