SpringbootSecurity

SpringbootSecurity/JWT Filter 등록 테스트

25G 2021. 9. 28. 11:04

이번 포스팅은 저번 포스팅과 연결된 포스팅입니다.

 

이번 포스팅에서는 저번에 작업하던 JWT서버 만드는 프로젝트에서 필터를 하나 만들어 보겠습니다.

MyFilter1이라는 클래스를 만들어서 아래와 같이 필터의 역할을 하는 파일을 만들었다.

그리고 SecurityConfig에서 Security설정을 위와 같이 해주는 방법도 있지만 굳이 그렇게 하는 것보다 좀 더 효율적인 방법이 있다. 필터 설정을 해주는 클래스를 하나 더 만드는 것이다.

위와 같이 등록돼있으면

필터가 잘 작동한다.

setOrder는 필터가 실행되는 순서를 설정하는 것이다.

위와 같이 하나의 필터를 더 만들어서 실행을 해보면

setOrder의 설정 순서대로 작동하는 것을 알 수 있다.

 

그럼 위와 같은 방식의 filter와 SecurityConfig에 등록한 필터 중 어떤 것이 먼저 설정되냐면

SecurityConfig에 등록한 필터가 가장 최우선 순위에 있다.

결국 SecurityChain이 우리가 만든 filter보다 먼저 실행이 된다.

실험을 해보자

 

위 그림을 보면 filter의 실행 순서가 나와있는데 SecurityContextPersistenceFilter가 가장 먼저 동작한다고 설명이 돼있다.

필터 하나를 더 만들어서 컨트롤러를 때리면

이렇게 SecurityFilter가 가장 먼저 실행되고 그다음 setOrder에 설정해 놓은 순서대로 필터가 실행되는 것을 알 수 있다.

 

https://github.com/fj2008/JWTstudy

 

GitHub - fj2008/JWTstudy

Contribute to fj2008/JWTstudy development by creating an account on GitHub.

github.com