티스토리 뷰

반응형

 

캡스톤 프로젝트 진행을 하다

다음의 에러를 발견했다.

 

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String "//"

 

에러 화면

 

 

과연 무슨 에러이며

어떻게 해결해야하는지 알아보자.

 


 

🤔 우선 왜 이런 에러가 뜨는가?

 

에러메세지를 대충 읽어보면, 

(필자가 영어를 잘하는 편이 아니므로

오역이 있어도 양해 바란다.)

(대충 에러의 뉘앙스만 알아가자.)

 

servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

경로[]에서 dispatcherServlet에 대한 예외가 발생했다는 뜻인데,,

 

그 아래 줄을 읽어보니

the request was rejected because the URL contained a potentially malicious String "//"

URL에 문자열 "//"이 포함되어 있어 요청이 거부된다고 한다.

 

 

무슨 말인가 하니,

Spring Security는 기본적으로

URL에 //가 들어가는 것을 허용하지 않는다고 한다.

 

예를 들어

http://localhost:8080/api/a/b/c라는 URL을 사용하는데

url을 잘못 요청해서

http://localhost:8080/api/a/b//c라는 URL을 받으면

 

 

 

에러 화면

 

위와 같은 에러가 발생하는 것이다.

 


🤔 그럼 어떻게 해결할까?

 

SpringSecurityConfig 파일에 다음의 내용을 추가하면 된다.

더블슬래시를 허용해달라는

내용의 메서드를 추가하는 것이다.

 

SpringSecurityConfig 파일에 추가하기

 

참고 사이트

https://godd.tistory.com/40

 


그럼 오늘도 열심히 공부하자. 🔥

반응형