У меня есть приложение, которое использует Spring Security для аутентификации. Ранее мы использовали Spring Security 3.2.10 и теперь пытаемся перейти на 4.2.6.
Весной 4 года защита от CSRF включена по умолчанию.
Я следую инструкции по миграции - https://docs.spring.io/spring-security/site/migrate/current/3-to-4/html5/migrate-3-to-4-xml.html
Когда я просто изменил пространство имен и заменил банки безопасности и попытался войти со страницы входа в систему, он выдал ошибку 404 для "/j_spring_security_check".
Согласно Руководству, я изменил действие входа в систему на «/ login» вместо «/ j_spring_security_check». Также изменил параметры имени пользователя и пароля на «имя пользователя» и «пароль» вместо «j_username» и «j_password», определенных на странице входа в систему.
<form action="/login" method="POST">
После этих изменений я получаю ошибку, связанную с токеном CSRF, с кодом состояния 403-
Type Status Report
Message Could not verify the provided CSRF token because your session was
not found.
Description The server understood the request but refuses to authorize it.
Я отключил защиту CSRF, добавив ниже в весенний конфигурационный файл безопасности -
<security:http disable-url-rewriting="true" use-expressions="true">
<security:csrf disabled="true"/>
..
<security:intercept-url pattern="/login.jsp"
access="hasRole('ROLE_ANONYMOUS')"/>
<security:form-login login-page="/login.jsp"
authentication-failure-url="/login.jsp?
login_error=1"
default-target-url="/index.html" authentication-
success-handler-ref="successHandler" always-use-default-
target="true"/>
<security:logout logout-success-url="/login.jsp"/>
Но все равно это не работает и выдает ошибку, связанную с CSRF со статусом 403 -
Type Status Report
Message Could not verify the provided CSRF token because your session was
not found.
Description The server understood the request but refuses to authorize it.
Есть что-то, что я пропускаю?