[SPRING] 스프링 MVC 스프링 보안과 에러 처리
SPRING스프링 MVC 스프링 보안과 에러 처리
저는 Spring에서 잘못된 요청을 처리하고 싶다는 점을 제외하고는 오류를 처리하고 거의 정상적으로 작동하는 ResponseEntityExceptionHandler를 사용하고 있습니다. handleNoSuchRequestHandlingMethod를 오버라이드하는 로직이이를 처리해야하지만 핸들링은 항상 get
콘솔에서 디버깅을 활성화하면 다음과 같이됩니다.
WARN : org.springframework.web.servlet.PageNotFound - URI가있는 HTTP 요청에 대한 매핑이 없습니다.
처리하여 명확히하기 위해 JSON을 반환한다는 의미입니다.
어떤 생각이 어떻게 처리 할 수 있습니까?
해결법
-
==============================
1.그 이유는 바로 DispatcherServlet 클래스에 있기 때문입니다. 예외 처리기를 호출하지 않고 오류 응답을 보냅니다 (기본적으로).
그 이유는 바로 DispatcherServlet 클래스에 있기 때문입니다. 예외 처리기를 호출하지 않고 오류 응답을 보냅니다 (기본적으로).
4.0.0.RELEASE 이후이 동작은 단순히 throwExceptionIfNoHandlerFound 매개 변수로 변경 될 수 있습니다.
XML 구성 :
<servlet> <servlet-name>rest-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>throwExceptionIfNoHandlerFound</param-name> <param-value>true</param-value> </init-param> </servlet>
Java 기반 구성 :
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { void customizeRegistration(ServletRegistration.Dynamic registration) { registration.setInitParameter("throwExceptionIfNoHandlerFound", "true"); } ... }
다음과 같이 NoHandlerFoundException을 처리 할 수 있습니다.
@ControllerAdvice public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { @Override ResponseEntity handleNoHandlerFoundException(NoHandlerFoundException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { // return whatever you want } }
-
==============================
2.throwExceptionIfNoHandlerFound는 요청에 대한 핸들러가없는 경우에만 고려합니다.
throwExceptionIfNoHandlerFound는 요청에 대한 핸들러가없는 경우에만 고려합니다.
default-servlet-handler가 구성된 경우 DefaultServletHttpRequestHandler가 요청을 처리합니다. 따라서이 솔루션이 작동하지 않으면 제거하고 DispatcherServlet의이 위치를 살펴 봅니다 (디버그).
from https://stackoverflow.com/questions/18322279/spring-mvc-spring-security-and-error-handling by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 데이터 (JPA) 저장소를 계측 / 조언하는 방법은 무엇입니까? (0) | 2019.01.02 |
---|---|
[SPRING] 봄에 시작할 때 @Cache를로드하는 방법? (0) | 2019.01.02 |
[SPRING] convertAndSendToUser에서 "user"가 나오는 곳은 SockJS + Spring Websocket에서 작동합니까? (0) | 2019.01.02 |
[SPRING] Spring MessageSource는 다중 클래스 경로를 지원합니까? (0) | 2019.01.02 |
[SPRING] 읽을 수있는 로그를 갖기 위해 Spring 로그를 사용 불가능하게한다. (0) | 2019.01.01 |