При отправке действительного токена 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);

    }
}

Пожалуйста, проверьте код для справки.

0 ответов

Другие вопросы по тегам