BackEnd/Spring

[Spring] Spring Security (4) - Spring Boot 에서의 동작 실습

JJangGu 2022. 2. 27. 15:52

앞선 글에서 Spring Boot가 어떻게 DelegatingFilterProxy 를 실행하는지 설명하였습니다.

이제 예시를 들어 실제로 FilterChainProxy의 코드가 동작하는지 살펴보겠습니다.

 

SecurityConfig 라는 클래스를 만들어 Spring Security 가 동작하도록 간단하게 설정을 해주었습니다.

필터가 동작하는 경로로 "/foo/**" 를 등록해주었습니다

Controller 도 간단하게만 구성하였습니다. Security에 등록된 경로를 매핑하는 컨트롤러를 하나 만들어주었습니다.

 

이제 테스트를 돌려 작성한데로 Controller 를 호출하는지와, 동시에 FIlterChainProxy 를 타는지 디버깅으로 실행해보겠습니다.

 

디버깅을 FilterChainProxy 의 doFilter에 breaking point 를 찍었더니 예상대로 들어왔습니다.

Mvc Pattern 의 "/foo/**" 과 match 된 것을 확인 할 수 있고, 앞의 글에서 DEFAULT_FILTER_NAME 으로 설정되었었던

springSecurityFilterChain 이라는 beanName 도 보이네요.

 

최종적으로 테스트도 성공함을 확인하며 원하는대로 컨트롤러를 호출했고, 매칭되는 패턴을 통해 Spring Security가 필터를 태워준다는 것도 확인하였습니다. 👍