앞선 글에서 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가 필터를 태워준다는 것도 확인하였습니다. 👍
'BackEnd > Spring' 카테고리의 다른 글
[Spring] HATEOAS - REST API & HATEOAS (0) | 2022.05.01 |
---|---|
[Spring] Test - @SpringBootTest (0) | 2022.03.20 |
[Spring] Spring Security (3) - Spring Boot의 Filter Chain (0) | 2022.02.27 |
[Spring] Spring Security (2) - Spring Security Filter Chain (0) | 2022.02.23 |
[Spring] Spring Security (1) (0) | 2022.01.10 |