"당신이 누구인가?"를 확인하는 과정
예를 들어, 누군가가 어떤 시스템에 접근하려고 할 때, 그 사람이 실제로 그 시스템에 접근할 권한이 있는 사람인지 확인하는 과정
"당신이 무엇을 할 수 있는가?"를 결정하는 과정
인증된 사용자가 어떤 자원이나 서비스를 사용할 수 있는지, 또는 어떤 행동을 할 수 있는지를 결정하는 과정
서블릿 필터는 클라이언트의 요청(Resquest)과 서버의 응답(Response)을 가로채서 처리할 수 있는 강력한 메커니즘
필터는 요청이 특정 서블릿에 도달하기 전 또는 응답이 클라이언트에게 전달되기 전에 실행
요청/응답 데이터를 조작하거나, 접근을 제어, 로직을 수행하는 등의 작업
클라이언트 바로 다음에 위치해서 유해한 데이터를 걸러주는 역할을 한다
p.s 스프링 시큐리티 없이
2.FilterRegistrationBean을 사용한 필터 등록
3.@WebFilter 와 @Servlet
책임 연쇄 패턴
각각의 인스턴스의 책임이 체인처럼 연쇄되어 있다
즉 잠재적 수신자의 동적 체인을 따라 수신자 중 하나에 의해 요청이 처리될 때까지 요청을 순차적으로 전달
장점
요청을 체인 아래로 더 이상 전달하지 않고 추가 처리를 사실상 중지하는 결정을 내릴 수 있다
요청의 처리 순서를 제어할 수 있다
단일 책임 원칙 작업을 호출하는 클래스들을 작업을 수행하는 클래스와 분리할 수 없다
개방/패쇄 원칙 기존 클라이언트 코드를 손상하지 않고 새 핸들러들을 도입 할 수 있다
쿠키기반 인증 VS JWT 토큰 방식
세션 데이터베이스를 사용하는지 안하는지에 차이
데이터베이스의 부하를 줄일 수 있다