При отправке действительного токена csrf отсутствует токен CSRF
Я получаю csrfTokenMissingException, даже когда я отправляю действительный токен csrf при отправке весенней формы. Сценарий заключается в том, что когда я перезагружаю сервер приложений и сразу нажимаю на конкретную ссылку "abc", это вызывает исключение csrfTokenMissingException, но когда я нажимаю на другую ссылку (ссылка xyz), где токен csrf действителен и работает правильно, после этого я нажимаю на abc ссылка, то работает нормально. Во всем сценарии я посылаю действительный токен csrf.
<form id="menuForm" action="/TEST/loginValidate" method="post" autocomplete="off">
<div>
<input type="hidden" name="_c`enter code here`srf" value="0179ad01-85d2-4587-b754-b1aa33243967">
</div>
</form>
function test(){
$('#menuForm').attr('action','testUrl');
$('#menuForm').submit();
}
public class CustomAccessDeniedHandler extends AccessDeniedHandlerImpl{
@Override
public void handle(HttpServletRequest request,HttpServletResponse response,AccessDeniedException accessDeniedException)
throws IOException, ServletException {
if (accessDeniedException instanceof MissingCsrfTokenException
|| accessDeniedException instanceof InvalidCsrfTokenException) {
System.out.println(" == :: accessDeniedException exception --------------------- 46464646 "+accessDeniedException.getClass());
System.out.println(" == :: getRequestURI "+request.getRequestURI());
System.out.println(" ------ X-CSRF-Token "+request.getHeader("X-CSRF-Token"));
response.sendRedirect(request.getContextPath());
}
super.handle(request, response, accessDeniedException);
}
}
Пожалуйста, проверьте код для справки.