로그인을 Controller가 아닌 filter에서 처리하는 것의 이점
665
작성한 질문수 2
스프링 시큐리티에서 기본적으로 제공하는 formlogin 방식이 아닌 방식(예를 들면 json 요청)으로 로그인을 구현할 때, 기존의 방식 처럼 컨트롤러에서 처리하는 것과 커스텀 필터를 등록하여 처리하는 것에 차이가 무엇인지 궁금합니다.
아무래도 필터는 Dispatcher Servlet을 거치지 않고 먼저 처리할 수 있다는 장점이 있을 것 같은데 컨트롤로 단에서 처리하는 것 보다 어떤점이 유리할까요? 또 다른 이점이 있는지도 궁금합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
마종님, 스프링 시큐리티에서 커스텀 필터를 이용한 로그인 처리는 Controller를 거치지 않고 DispatcherServlet에 도달하기 전에 요청을 처리함으로써, 인증 단계를 애플리케이션의 전역적인 흐름에서 더 빨리 적용할 수 있다는 이점이 있습니다.
커스텀 필터를 사용할 경우 다음과 같은 이점들이 있습니다:
1. 보안 처리를 애플리케이션의 앞단에서 수행하여 불필요한 서블릿 호출을 줄일 수 있습니다.
2. DispatcherServlet이 처리하기 전에 요청에 대한 충분한 검증과 로깅, 자원 접근 제어 등을 수행할 수 있습니다.
3. 스프링 시큐리티와 같은 보안 프레임워크와 통합하면서 요청에 대한 인증 방식을 다양하게 구현할 수 있습니다(예를 들어 토큰 기반 인증).
4. 세밀한 보안 정책을 요구하는 애플리케이션에 대해 보다 유연하게 인증 절차를 조정할 수 있습니다.
단점으로는 추가적인 필터 구현에 따른 복잡성 증가와 보안 구현에 대한 깊은 이해가 필요할 수 있습니다.
Spring Boot Reference Documentation v3.1.5에 따르면, 내장된 서블릿 컨테이너를 사용할 때 스프링 빈을 통한 등록 또는 컴포넌트 스캔을 통해 서블릿, 필터 및 리스너를 등록할 수 있다고 설명하고 있습니다.
스프링 부트를 사용하는 경우, 이 문서가 커스텀 필터를 등록하는 방법에 관한 추가 정보를 제공해 줄 수 있습니다.
Deprecated 관련 사항들
0
100
2
깃헙 collaboator 초대 관련
0
88
1
강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다
0
157
2
logout 후에 login 페이지 이동은 어디서 시켜주는건가요?
0
232
1
다중 데이터를 삭제 할 때
0
270
2
querydsl Q class 이슈
0
414
2
Windows WSL Vue 설정
2
246
1
Dip, @transactional
0
189
1
[vite] http proxy error: /auth/login
0
1043
2
로그인 하고 나서 GET요청으로 메인페이지 요청
0
234
2
GitHub Collaborator 초대 관련
0
256
2
Window에서 Vue.js 설정
0
321
2
collaboator로 초대받을 수 있을까요??
0
283
2
SecurityMockContext 로부터 유저 정보를 가져오기
0
261
1
given 부분이 길어질 때 어떻게 처리하면 좋을까요?
0
318
1
섹션9 프론트의 코드를 보고싶습니다,,,
0
423
1
Spring Security - defaultSuccessUrl 질문
0
625
1
강의 화면이 나오지 않습니다. 음성과 자막만 나와요
0
302
1
JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ
0
690
2
ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상
0
1179
2
섹션10 언제 나오나요?
0
484
1
CommentService에서 Repository를 호출하지 않는데도
0
342
1
Editor....를 활용한 패턴에 질문있습니다.
0
494
1
섹션9 vue
0
453
2





