2

次の例のようにトークンで保護されたサービスがあります: 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 でそれ以上送信されないため、リクエストにパラメーターがないという例外がスローされます。この問題を解決して、トークン認証でファイルを受信できるようにするにはどうすればよいですか?

4

1 に答える 1