Backend/Spring Framework

[Spring Security] RequestRejectedException 처리하기

mopil 2023. 2. 8. 01:36
반응형

Spring Security는 API 요청 URL 중 ;나 //가 포함되어 있으면 RequestRejectedException을 내뱉는다.

로깅을 할 때 해당 예외는 Security 필터 단에서 터지는 예외이므로 ControllerAdvice가 핸들을 하지 못해서 이렇게 지저분하게 로그가 남게 된다.

 

이를 처리하지 않게 하기 위해서는 다음과 같이 설정해 주면 된다.

 

@Bean
fun setDefaultFirewall(): StrictHttpFirewall {
    val firewall = StrictHttpFirewall()
    firewall.setAllowSemicolon(true)
    firewall.setAllowUrlEncodedDoubleSlash(true)
    return firewall
}

 

자세한 건 공식 문서를 참조하자

https://docs.spring.io/spring-security/reference/servlet/exploits/firewall.html

 

HttpFirewall :: Spring Security

The servlet specification defines several properties for the HttpServletRequest that are accessible via getter methods and that we might want to match against. These are the contextPath, servletPath, pathInfo, and queryString. Spring Security is only inter

docs.spring.io

 

반응형