В Spring приложении не работают методы PATCH/DELETE (PUT?)
В Spring приложении (java) адекватно работали все контроллеры (взятие\добавление\изменение\удаление , т.е. GET \ POST \ PATCH \ DELETE реквесты), однако после добавления зависимости Spring Security в какой-то момент перестали работать методы DELETE и PATCH. При этом методы GET \ POST работают исправно для всех контроллеров. При попытке обращения к методам PATCH \ DELETE в консоли выдает следующую ошибку:
WARN 15516 --- [nio-8080-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
В это время на самой ссылке по этому запросу выдает следующий результат
Если это важно могу скинуть код перезаписанного метода configure(HttpSecurity http). Также возможно важно, контроллеры реализованы с помощью аннотаций @Controller, а не @RestController. Подскажите, пожалуйста, в чем может быть проблема?
P.S. конфигурация Spring Security выглядит следующим образом:
https://textsaver.flap.tv/lists/3vl8 (по ссылке, чтобы не засорять вопрос)
Ответы (2 шт):
У вас написано, что по такому адресу нет метода, который мог бы обработать запрос, а именно - POST(тоесть @PostMapping метод в контроллере). Проверьте, все ли вы корректно вводите в адресной строке (может, вы не тот метод http использовали, забыли приставку добавить context-path). Spring security тут не при чем, скорее всего
Я нашел решение проблемы, оно заключалось в том, что до запуска Spring Security я запускал приложение с помощью Tomcat Server, когда в данный момент для запуска я использую класс с Аннотацией @SpringBootApplication, который использует свою конфигурацию, отличную от конфигурации Tomcat сервера (для этого был создан другой класс мною же). Так вот решил я проблему простым добавлением бина
@Bean
HiddenHttpMethodFilter hiddenHttpMethodFilter() {
return new HiddenHttpMethodFilter();
}
в мой класс с аннотацией @SpringBootApplication. После этого все неработающие методы (DELETE,PATCH) заработали.
