У меня есть следующий код.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta name="_csrf" th:content="${_csrf.token}"/>
<!-- default header name is X-CSRF-TOKEN -->
<meta name="_csrf_header" th:content="${_csrf.headerName}"/>
<title>Fileupload Test</title>
</head>
<body>
<p th:text="${msg}"></p>
<form action="#" th:action="@{/fileUpload}" method="post" enctype="multipart/form-data">
<input type="file" name="myFile" />
<input type="submit" />
</form>
</body>
</html>
Я получаю сообщение об ошибке HTTP 403: Недопустимый токен CSRF "null" был найден в параметре запроса "_csrf" или в заголовке "X-CSRF-TOKEN".
CSRF работает, если я использую эту строку вместо:
<form action="#" th:action="@{/fileUpload} + '?' + ${_csrf.parameterName} + '=' + ${_csrf.token}" method="post" enctype="multipart/form-data">
Но как я могу достичь рабочего CSRF, если я использую заголовки?