[SpringSecurity] URL 더블슬래시 허용
spring boot 2.5 버전 이상 사용시
Spring Security의 기본적인 정책은 URL에 더블슬래시가 들어가는 것을 허용하지 않는다.
예를 들면, test라는 리소스를 요청할 때 > http://localhost:8080/api/test 라는 URL을 사용한다고 해보자.
WEB 소스에서 baseURL 을 잘못설정 뭐 그러한 이유로 http://localhost:8080/api//test 로 요청이 들어오면
서버에서는 아래와 같은 에러가 발생한다.
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.
at org.springframework.security.web.firewall.StrictHttpFirewall.getFirewalledRequest(StrictHttpFirewall.java:248)
이를 위해서는 Spring Security Config 파일에 아래와 같은 내용을 넣는다.
더블슬래시를 허용해주는 놈을 Bean으로 등록한 후 WebSecurity 설정에 추가해준다.
@Override
public void configure(WebSecurity web) throws Exception {
web.httpFirewall(defaultHttpFirewall());
}
@Bean
public HttpFirewall defaultHttpFirewall() {
return new DefaultHttpFirewall();
}
'Spring Framework > Spring security' 카테고리의 다른 글
OAuth란? (1) | 2023.04.25 |
---|---|
Spring Security 구현 정리 (0) | 2022.05.24 |
[Spring] 비밀번호 암호화 SHA-256 / MD5 (0) | 2022.05.24 |
Spring Security OAuth2.0 파헤치기! - 3(authorization server + resource server + client) (0) | 2021.04.13 |
Spring Security OAuth2.0 파헤치기! - 2(Authorization Server + Resource Server) (0) | 2021.04.13 |
Spring Security OAuth2.0 파헤치기! - 1(Authorization Server) (1) | 2021.04.13 |
Spring boot - Spring Security(스프링 시큐리티) 란? 완전 해결! (0) | 2021.04.13 |
spring security 파헤치기 (구조, 인증과정, 설정, 핸들러 및 암호화 예제, @Secured, @AuthenticationPrincipal, taglib) (0) | 2021.03.23 |