Приложение My Spring Boot обслуживает POST-запросы в конечной точке входа http://server.org/users/login
, что может привести к ошибке 401. В этом случае Spring выполняет другой запрос POST на зарегистрированную страницу ошибки, тогда как я ожидал, что запрос GET будет выполняться всегда. Можно ли изменить это поведение?Почему Spring выполняет POST-запрос на зарегистрированную страницу с ошибкой?
EDIT:
Я использую следующий код, чтобы настроить свою страницу ошибки:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/weblogin");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
container.addErrorPages(error401Page, error404Page, error500Page);
});
}
Когда я называю http://server.org/users/login
использованием, например, форма, процедура следующая:
1) запрос POST выдается на сервер в http://server.org/users/login
2) Вход в учетные данные недействительны, ошибка страница 401 должна быть возвращена
3) Здесь я не уверен, что будет дальше, Spring сообщает мне в журналах, что другой запрос POST выполняется до /weblogin
. Если бы я не указать страницу ошибки, запрос POST выполняется в /error
:
2016-11-19 20:10:38,827 [http-nio-80-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - DispatcherServlet with name 'dispatcherServlet' processing POST request for [/weblogin]
2016-11-19 20:10:38,828 [http-nio-80-exec-3] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Looking up handler method for path /weblogin
Что вы имеете в виду с «Spring выполняет другой запрос POST "? Заказчик выдает запрос. – Henry
** Можете ли вы показать настройки приложения? ** И я думаю, что весна не будет вызывать какой-либо метод post для ошибки, она вернет страницу с ошибкой, если это произойдет. –