Я пытался реализовать Spring Security в течение нескольких дней и боролся с csrf tokens
.Spring Security Producing Null CSRF Token - свойство или поле «параметрName» не найдено на нуле
Я отлаживал до CsrfRequestDataValueProcessor
и обнаружил, что следующая строка возвращает null.
CsrfToken token = (CsrfToken) request.getAttribute(CsrfToken.class.getName());
Использование Thymeleaf Я следующий вид:
<form th:action="@{/j_spring_security_check}" method="post">
<label for="j_username">Username</label>:
<input type="text" id="j_username" name="j_username" /> <br />
<label for="j_password">Password</label>:
<input type="password" id="j_password" name="j_password" /> <br />
<input type="submit" value="Log in" />
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />
</form>
Это не делает и выдает следующее исключение: обработка
Ошибка запроса; Вложенное исключение - org.thymeleaf.exceptions.TemplateProcessingException: Исключение, оценивающее выражение SpringEL: «_csrf.parameterName» (loginsample: 19)] с основной причиной org.springframework.expression.spel.SpelEvaluationException: EL1007E: (pos 0): свойство или поле «parameterName» не найден на нуле
Почему это может быть?
Вы используете пружинную защиту 4? – smoggers
Как вы создаете токен csrf? – kTT