Servelet Filter 스프링에서의 Filter의 위치와 등록 방법

이상민·2024년 8월 26일
0

Servelet Filter?

인증/인가 란?

  • 인증

"당신이 누구인가?"를 확인하는 과정
예를 들어, 누군가가 어떤 시스템에 접근하려고 할 때, 그 사람이 실제로 그 시스템에 접근할 권한이 있는 사람인지 확인하는 과정

  • 인가

"당신이 무엇을 할 수 있는가?"를 결정하는 과정

인증된 사용자가 어떤 자원이나 서비스를 사용할 수 있는지, 또는 어떤 행동을 할 수 있는지를 결정하는 과정

Filter란?

  • 서블릿 필터는 클라이언트의 요청(Resquest)과 서버의 응답(Response)을 가로채서 처리할 수 있는 강력한 메커니즘

  • 필터는 요청이 특정 서블릿에 도달하기 전 또는 응답이 클라이언트에게 전달되기 전에 실행

  • 요청/응답 데이터를 조작하거나, 접근을 제어, 로직을 수행하는 등의 작업

스프링에서의 Filter의 위치

클라이언트 바로 다음에 위치해서 유해한 데이터를 걸러주는 역할을 한다

Filter를 등록하는 방법

p.s 스프링 시큐리티 없이

  1. @Bean을 사용한 필터 등록

2.FilterRegistrationBean을 사용한 필터 등록

3.@WebFilter 와 @Servlet

책임 연쇄 패턴

각각의 인스턴스의 책임이 체인처럼 연쇄되어 있다

즉 잠재적 수신자의 동적 체인을 따라 수신자 중 하나에 의해 요청이 처리될 때까지 요청을 순차적으로 전달

장점

  • 요청을 체인 아래로 더 이상 전달하지 않고 추가 처리를 사실상 중지하는 결정을 내릴 수 있다

  • 요청의 처리 순서를 제어할 수 있다

  • 단일 책임 원칙 작업을 호출하는 클래스들을 작업을 수행하는 클래스와 분리할 수 없다

  • 개방/패쇄 원칙 기존 클라이언트 코드를 손상하지 않고 새 핸들러들을 도입 할 수 있다

JWT의 인증

쿠키기반 인증 VS JWT 토큰 방식

세션 데이터베이스를 사용하는지 안하는지에 차이
데이터베이스의 부하를 줄일 수 있다

profile
안녕하세요

0개의 댓글