当前位置: 首页 > 知识库问答 >
问题:

Spring安全与多部分

连志义
2023-03-14

我有使用令牌保护的服务,如下例所示:https://stackoverflow.com/A/10864088/278279

问题是当我添加文件上传时,筛选器找不到请求中的令牌(我认为原因是请求有多部分类型)

我正在使用CommonsMultipartResolver

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="100000000"/>
</bean>

和简单的spring控制器来接收文件@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();
               }
       }
    }

共有1个答案

阚元白
2023-03-14

我认为您需要添加multipartfilter。如何执行此操作取决于您使用的配置样式。在我们的示例中,我们将这些行添加到WebApplicationInitializer.onStartup()方法中:

    FilterRegistration.Dynamic multipartFilter = servletContext.addFilter("multipartFilter", new MultipartFilter());
    multipartFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*");
 类似资料:
  • 我有一个auth-cas库,它为我的spring boot项目提供身份验证。在这个auth-cas库中,有一个类扩展并使用以下配置函数 由于这应该是黑框,所以我添加了自己的,如下所示: 我的自定义AuthenticationProvider实现了“AuthenticationProvider”,并在页面中工作,将我重定向到/login页面,我可以使用用户库中的凭据登录。唯一的问题是,当我已经登录到

  • 问题内容: 在阅读了“ 实践中的Java并发 ”和“ 实践OSGI ”之后,我发现了一个非常有趣的特定主题。安全发布。以下是来自JCIP的内容: 为了安全地发布对象,必须同时使对该对象的引用和该对象的状态对其他线程可见。可以通过以下方式安全地发布正确构造的对象: 从静态初始化程序初始化对象引用。 将对它的引用存储到可变字段中。 将对它的引用存储到最终字段中。 将对它的引用存储到由(同步)锁适当保护

  • 是否可以为Apache Kafka的Spring Cloud DataFlow配置身份验证?在哪里可以看到示例? 谢谢你。

  • 我有一个有效的配置,它包装了基于jersey的RESTendpoint,并允许方法级访问。 包含快速重现问题所需的一切的示例项目:https://github.com/pulkitsinghal/dummy-rest-api 但在为受保护的endpoint编写健全性测试时,我遇到了以下异常,这种异常只发生在单元测试中: 以下是基于JerseyTest的单元测试类的外观: 在为受Spring Sec

  • 然后我使用相同的公式来解密密码,通过尝试所有可能的子字符串组合,直到找到正确的一个。 我的问题是A.除了可能的性能问题之外,这种方法还会带来什么危险? B.这种方法是否矫枉过正,像这样加盐和存储盐/密码有必要吗?c.如果没有必要,我还可以使用什么其他方法来加盐和存储盐/密码?

  • 我使用的配置如下: 提前致谢