일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 통신사할인
- 미디어 쿼리
- stl
- Gap
- c
- 상태
- 강화학습
- 백준
- pandas
- react
- 수학
- CSS
- 반응형 웹
- float
- c++
- 확률
- 포토샵
- REM
- Codility
- 알고리즘
- 소수
- Photoshop
- skt membership
- grid
- box-sizing
- Javascript
- spring
- transform
- SK바이오사이언스
- JSX
Archives
- Today
- Total
sliver__
[Spring security] Custom FilterChain 본문
728x90
Spring security에 내가 원하는 filter는 어떻게 추가할까?
filter 동작을 구현하고 SecurityFilterChain에 추가하면 된다.
httpSecurity의 .addFilterAt, .addFilterBefore, .addFileterAfter가 있다.
addFilterAt(Filter filter, Class<? extends Filter> AtFilter) | 첫 번째 파라미터는 추가하려는 필터 대상 두 번째 파라미터는 함수 이름을 따라 해당 필터가 "언제" 실행될 지 기준이 되는 필터 addAtFilter 함수의 경우, 동시에 수행되는 필터의 순서는 랜덤이다. 그러므로 순서에 종속성이 없는 필터인 경우 사용해야 한다. |
addFilterBefore(Filter filter, Class<? extends Filter> beforeFilter) | |
addFileterAfter(Filter filter, Class<? extends Filter> AfterFilter) |
Custom 필터는 아래의 Filter interface를 상속받아 doFilter를 구현하면 된다.
HttpRequest를 통해 전달받은 client request에 필요한 값을 사용하여 어떤 HttpResponse를 return 할 지 설정하면 된다.
public interface Filter {
default void init(FilterConfig filterConfig) throws ServletException {
}
void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;
default void destroy() {
}
}
아래와 같이 @Configuration으로 설정한 SecurityFilterChain의 HttpSecurity에 추가하면 된다.
.addFilterBefore(new RequestValidationBeforeFilter(), BasicAuthenticationFilter.class)
728x90
'Backend > Spring Security' 카테고리의 다른 글
Spring security - User Management (7) (0) | 2025.03.02 |
---|---|
Spring security - UserDetailsService, PasswordEncoder (6) (0) | 2025.03.02 |
[Spring security] JWT(Json Web Token) (0) | 2025.01.31 |
[Spring security] debug security filter (0) | 2025.01.30 |
[Spring security] 권한 저장 방식 (0) | 2025.01.27 |
Comments