본문 바로가기

JAVA

Spring boot Security , filter

스프링 시큐리티란?


 

스프링 시큐리티란 쉽게 말하면 스프링 필터들의 집합이다. 

그렇다면 스프링 필터는?

서블릿 실행전 실행되는 클래스들을 의미한다.

그림을 보게되면 클라이언트로부터 HTTP 요청을 받게되면 필터를 통해 걸리지게 되는데 

구현된 로직에 따라 원하지 않는 HTTP요청을 걸러낼수있다 걸러진 HTTP는 거절되는 것이고 

필터에서 걸리지지않은 필터들은 컨트롤러를 통해서 실행된다.

 

서블릿 필터가 꼭 한개일필요는 없다. 

걸러내고 싶은 모든것을 하나의 클래스에 담으면 그 크기가 커질것이다. 

그래서 우리는 기능에따라 다른 서블릿 필터를 작성할수있고 이 서블릿 필터들을 FilterChain을 이용해 연쇄적으로 순서대로 실행할수있다.

스프링시큐리티를 프로젝트에 추가하게 되면 스프링 시큐리티가 FilterChainProxy라는 필터를 서블릿필터에 집어 넣게되는데 이 FilterChainProxy 클래스 안에는 내부적으로 필터를 실행시키는데

이 필터들이 스프링이 관리하는 스프링 빈(Bean)이다.

스프링이 관리하는 필터라고 크게 다를바가 없다. 단지 우리가 상속할 필터는 HttpFilter 가 아닌 OncePerRequestFilter

필터라는점 web.xml 대신 webSecurityConfigrerAdapter라는 클래스를 상속해 필터를 설정한다는 점이 다를뿐이다.

 

 

반응형

'JAVA' 카테고리의 다른 글

프로그래머스 Level - 0 중앙값 구하기 [javasript]  (0) 2023.02.19
JAVA - For문 문제  (0) 2023.02.18
Spring boot Jwt 개념정리  (0) 2022.11.28
@requestbody / @requestparam  (0) 2022.11.24
@RequestBody VS @ResponseBody 이해해보기!  (0) 2022.11.24