filter
๊ธฐ๋ณธ์ ์ธ ํํฐ๊ตฌํ์ ๊ดํ ๋ด์ฉ
์๋์ฒ๋ผ ํํฐ๋ฅผ ๊ตฌํํ๋ฉด doFilter ๋ฅผ ์ค๋ฒ๋ผ์ด๋ํ๋ค.
ํํฐ์ ๊ฑธ๋ ค์ ํ๋ก๊ทธ๋จ์ด ๋๋์ง ์๋๋ก filterChain.doFilter ๋ก ๋ฆฌํ์คํธ์ ๋ฆฌ์คํ์ค๋ฅผ ๋๊ฒจ์ฃผ์ด์ผํ๋ค.
import javax.servlet.*;
import java.io.IOException;
public class myfilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
System.out.println("filter");
filterChain.doFilter(servletRequest,servletResponse);
}
}
ํด๋น ํํฐ๋ฅผ ์ํ๋ฆฌํฐ์๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฑ๋กํ ์๋ ์์ง๋ง
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.addFilterBefore(new myfilter(), BasicAuthenticationFilter.class)
//ํํฐ ๋ฑ๋กํ์์, BasicAuthenticationFilter๋ณด๋ค ๋จผ์ ๋์ํ๋๋ก ์ค์ ํ๊ฒ์
๋ฐ๋ก ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ํํฐ๋ฅผ ๊ด๋ฆฌํ ์๋ ์๋ค.
์๋์ฒ๋ผ ํํฐ์ ์์๋ฅผ ์ ํ์ฌ ์ฌ๋ฌ๊ฐ๋ก ๋ฑ๋ก์ด ๊ฐ๋ฅํ๋ค.
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean<myfilter> filter(){
FilterRegistrationBean<myfilter> bean = new FilterRegistrationBean<>(new myfilter());
bean.addUrlPatterns("/*");
bean.setOrder(0); //๋ฎ์ ๋ฒํธ๊ฐ ํํฐ์ค์์ ๊ฐ์ฅ๋จผ์ ์คํ๋จ
return bean;
}
}
๋ค๋ง, FilterConfig๋ ์ํ๋ฆฌํฐ์ ๊ฑด ํํฐ๋ณด๋ค ์ดํ์ ์คํ๋๋ค.
์๋ ์ผ๋ฐ์ ์ธ ์นํ๊ฒฝ์์ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋ด๋ฉด DispatcherServlet์ด ์์ฒญ์ ๋ฐ๊ธฐ ์ด์ ์ ์๋ธ๋ฆฟ ํํฐ๋ฅผ ๊ฑฐ์น๊ฒ ๋๋ค. ์คํ๋ง ์ํ๋ฆฌํฐ๋ ์๋ธ๋ฆฟ ํํฐ๋ก ์๋ํ์ฌ ์ธ์ฆ,๊ถํ์ฒ๋ฆฌ๋ฅผ ์งํํ๋ค.
์ํ๋ฆฌํฐ์ ๊ด๋ จํ ์๋ธ๋ฆฟ ํํฐ๋ ์ค์ ๋ก ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ํํฐ๋ค๋ก ๊ตฌ์ฑ๋์ด์์ด ์ด๋ฐ ๋ชจ์ต๋๋ฌธ์ ์ฒด์ธ์ด๋ผ๋ ํํ์ ์ด๋ค. ํด๋น ํํฐ์ ์ญํ ๊ณผ ํ๋ฆ์ ์์์ผ ํํฐ๋ฅผ ์ปค์คํฐ ๋ง์ด์ง ๊ฐ๋ฅํ๋ค.
SecurityFilterChain ์ ๊ตฌ์กฐ https://siyoon210.tistory.com/32
Last updated