次の例のようにトークンで保護されたサービスがあります: https://stackoverflow.com/a/10864088/278279
問題は、ファイルのアップロードを追加したときに、フィルターがリクエストでトークンを見つけられないことです(原因は、リクエストがマルチパートタイプを持っていることだと思います)
CommonsMultipartResolver を使用しています
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000000"/>
</bean>
ファイルを受け取るシンプルなスプリングコントローラー @RequestParam("pic") MultipartFile pic
私が修正した問題を解決するには、リクエストがマルチパート タイプの場合のトークン取得:
if(request.getContentType().contains("multipart/form-data")){
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest((HttpServletRequest) request);
for (FileItem item : items) {
if (item.isFormField() && item.getFieldName().equals("token")) {
return item.getString();
}
}
}
最後に、この変更後に認証が機能しますが、コントローラー MultipartFile でそれ以上送信されないため、リクエストにパラメーターがないという例外がスローされます。この問題を解決して、トークン認証でファイルを受信できるようにするにはどうすればよいですか?