У меня возникла проблема с выходом из приложения после окончания сеанса. Я настроил выход из системы URL:Выход из системы безопасности после таймаута сеанса
<security:logout logout-url="/logout" logout-success-url="/" delete-cookies="JESSIONID"/>
и у меня есть форма выхода из системы:
<form action="#" th:action="@{/logout}" method="POST">
<input type="submit" th:value="#{btn.logout}"/>
</form>
Формы тег добавляет параметр CSRF и ведение журнала работ хорошо, пока сессия все еще активна. Но если я запишу в приложение, оставьте его достаточно открытым для завершения сеанса, а затем нажмите кнопку выхода из системы. Я получаю сообщение об ошибке: HTTP-статус 405 - метод запроса «POST» не поддерживается
Мне все еще нравится чтобы сохранить подтверждение csrf и заставить его работать как запрос POST.
Я не понимаю, почему у вас есть метод = «сообщение» для формы выхода? – smoggers
Spring security требует [POST по умолчанию, если csrf включен] (http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#csrf-logout). См. Ответ Роба для примера, если вам нужна поддержка выхода из GET: http://stackoverflow.com/a/20356111/2264997 – ikumen
Возможный дубликат [Spring Security 3.2.0RC2 только для выхода из системы?] (Http://stackoverflow.com/questions/20333176/spring-security-3-2-0rc2-logout-url-post-only) – ikumen