「input type="file"」のデータを送るために、form要素に「enctype="multipart/form-data"」を追加したところ、以下のエラー検出されサーバーの処理ができません。
エラー内容
403 Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
web.xmlに以下の設定を追加したのですが、動きません。どうすれば、multipart/form-dataでCSRFを正常に送ることができますか?
xml
1<filter> 2 <filter-name>springMultipartFilter</filter-name> 3 <filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class> 4</filter> 5<filter-mapping> 6 <filter-name>springMultipartFilter</filter-name> 7 <url-pattern>/*</url-pattern> 8</filter-mapping>
HTML
1<form id="formTest" method="post" enctype="multipart/form-data"> 2 3<input type="file" name="fileData" /> 4 5</from>
[追記]
上記の件は、xmlにMultipartFilterを設定し、springSecurityFilterChainより前に定義することによって解決できました。
web.xml
xml
1<filter> 2 <filter-name>MultipartFilter</filter-name> 3 <filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class> 4</filter> 5<filter-mapping> 6<filter-name>MultipartFilter</filter-name> 7 <url-pattern>/*</url-pattern> 8 <dispatcher>REQUEST</dispatcher> 9 <dispatcher>FORWARD</dispatcher> 10</filter-mapping>
ですが、今度は、以下のエラーが検出されました。
HTTP ERROR 500
「java.lang.IllegalStateException: No multipart config for servlet」
「org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: No multipart config for servlet」
これは、MultipartFilterの設定が悪いのか、別の原因があるのかがわからないです。
初歩的な質問ですが、ご返答よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー