Я использую этот плагин bootstrap-fileinput для загрузки файла в свое веб-приложение.
Для разработки этого веб-приложения я использую: Bootstrap4, Thymeleaf и Spring Boot.
Я хотел бы использовать конвенцию html5 для использования этого плагина, поэтому это код:
<div class = "file-loading" >
<input id = "uploadPDF" type = "file" class = "file" data-theme = "fas" data-allowed-file-extensions='["pdf"]'
data-language = "it" data-type = "POST" th:data-upload-url = "@{/path/{id}/pdf(id=${myObject.id})}"/>
</div>
Но я включил защиту CSRF с помощью Spring Security. Итак, когда я пытаюсь загрузить PDF-файл, результат будет следующим:
Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
Я хотел бы добавить токен CSRF, используя конвекцию HTML5, например:
<input .... data-toke = "token"...>
Таким образом я могу избежать использования javascript. Является ли это возможным?




Вы можете получить доступ к значению токена csrf с помощью ${_csrf.token}. Так:
<input ... th:data-token = "${_csrf.token}" ... />
Ничего не изменилось .. Ответ всегда:
status":403,"error":"Forbidden","message":"Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.","path":"/path/1/pdf", но на исходной странице значение не равно нулю.