FilterChainProxy는 SecurityFilterChain 인스턴스로 구성되어 있는 리스트를(filterChains) 사용하며, 각 인스턴스에는 RequestMatcher와 일치하는 요청에 적용해야하는 필터 목록이 포함되어 있다
FormLogin, BasicLogin 설정시 아래와 같다.
- WebAsyncManagerIntergrationFilter
- SecurityContextPersistenceFilter
- HeaderWriterFilter
- CsrfFilter
- LogoutFilter
- UsernamePasswordAuthenticationFilter(formlogin)
- DefaultLoginPageGeneratingFilter(formlogin)
- DefaultLogoutPageGeneratingFilter(formlogin)
- BasicAuthenticationFilter(basiclogin)
- RequestCacheAwareFtiler
- SecurityContextHolderAwareReqeustFilter
- AnonymouseAuthenticationFilter
- SessionManagementFilter
- ExeptionTranslationFilter
- FilterSecurityInterceptor
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/", "/info", "/account/**").permitAll()
.mvcMatchers("/admin").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic();
}
위와 같이 설정한 부분이 filterChains로 적용된다.
'스터디-Spring' 카테고리의 다른 글
[스프링 시큐리티] AccessDecisionManager (0) | 2022.01.13 |
---|---|
[스프링 시큐리티] DelegatingFilterProxy와 FilterChainProxy (0) | 2022.01.13 |
[스프링 시큐리티] Authentication과 SecurityContextHolder (0) | 2022.01.11 |
[스프링 시큐리티] ThreadLocal (0) | 2022.01.10 |
[스프링 시큐리티] AuthenticationManager와 Authentication (0) | 2022.01.10 |