非Spring MVC应用程序中的MultipartFilter

碧玉

在Tomcat 6的Java servlet(2.5)中,我们使用Spring和Spring security 3,但没有使用Spring MVC。我们尝试实现CSRF安全性,因此我们将_csrf令牌添加到了所有表单中。对于文件上传,我们在中添加org.springframework.web.multipart.support.MultipartFilterweb.xml,还修复了commons-fileupload依赖性。

我们可以看到请求已被解析和包装,但是spring security也再次包装了请求,因此我们不能再访问多部分数据了,可以吗?我尝试将请求对象强制转换为,MultipartHttpServletRequest但是失败了。互联网上的所有示例都展示了如何在Spring MVC控制器中访问文件项。我在这里迷路了。包装器互相包裹

BalusC

所有这些包装器都从标准ServletRequestWrapper接口扩展只是强制转换为它,通过getRequest()方法获取包装的请求并对其进行测试。

如果它实际上返回了另一个ServletRequestWrapper实现,则您甚至可以循环执行。

public static <R extends ServletRequest> R unwrap(ServletRequest request, Class<R> type) {
    ServletRequest current = request;

    while (!type.isInstance(current) && current instanceof ServletRequestWrapper) {
        current = ((ServletRequestWrapper) current).getRequest();
    }

    return type.isInstance(current) ? type.cast(current) : null;
}

用法:

MultipartHttpServletRequest multipartRequest = unwrap(request, MultipartHttpServletRequest.class);
// ...

关于额外的问题:您的Web应用程序的运行时类路径包含Servlet 3.0+ API。如果这不是目的,那么很可能只是一个肮脏的运行时类路径。只需清理它即可摆脱Servlet 3.0+库。Webapp的运行时类路径覆盖的文件夹是WAR /WEB-INF/lib,Server/lib和JRE /lib

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring MVC应用程序中的性能

来自分类Dev

Spring MVC应用程序中的性能

来自分类Dev

如何在Spring MVC(非Spring Boot)应用程序中自定义Jackson

来自分类Dev

Spring在Spring MVC应用程序中的集成

来自分类Dev

Spring MVC Web应用程序中的模板

来自分类Dev

Spring MVC应用程序测试中的ContextConfiguration

来自分类Dev

如何在Spring MVC应用程序中测试Aspect

来自分类Dev

在Spring MVC应用程序中检索会话数据

来自分类Dev

Spring MVC应用程序中未填充选择框

来自分类Dev

在Spring MVC应用程序中打开静态文件

来自分类Dev

Spring MVC应用程序中的多个ScriptTemplateViewResolvers

来自分类Dev

如何使WebFilter在非WebFlux /非反应式Spring Boot应用程序中工作?

来自分类Dev

在已经将spring-mvc用作依赖项的应用程序中设置spring-mvc

来自分类Dev

Spring @Secured和@PreAuthorize在普通(非Web)应用程序中不起作用

来自分类Dev

如何在 Spring Boot 应用程序中从 Api 网关(Zuul)调用外部服务(非 MSA)

来自分类Dev

Spring 4 WebSocket集成到Spring MVC应用程序中

来自分类Dev

Spring 启动 POST 请求在 Spring MVC 应用程序中不起作用

来自分类Dev

如何从Spring MVC应用程序的Tomcat文件夹中的bin目录中读取文件?

来自分类Dev

从我的Spring MVC应用程序中的jsp调用外部js中的jQuery函数

来自分类Dev

Spring Boot-非Web应用程序的长期运行的应用程序

来自分类Dev

从非MVC事件中断应用程序流

来自分类Dev

Spring 4 MVC应用程序-应用程序级异常处理程序

来自分类Dev

Spring 4 MVC应用程序-应用程序级异常处理程序

来自分类Dev

如何在Spring MVC应用程序中为不同的URL加载CSS

来自分类Dev

如何在Spring 3 MVC应用程序中对文件上传实施病毒扫描

来自分类Dev

在整个Spring MVC / JSP应用程序中显示导航栏

来自分类Dev

url-pattern在Spring MVC应用程序中不起作用

来自分类Dev

Spring MVC应用程序中如何在Hibernate中使用Jboss数据源

来自分类Dev

如何在Spring MVC应用程序的Hibernate中打印生成的SQL?

Related 相关文章

  1. 1

    Spring MVC应用程序中的性能

  2. 2

    Spring MVC应用程序中的性能

  3. 3

    如何在Spring MVC(非Spring Boot)应用程序中自定义Jackson

  4. 4

    Spring在Spring MVC应用程序中的集成

  5. 5

    Spring MVC Web应用程序中的模板

  6. 6

    Spring MVC应用程序测试中的ContextConfiguration

  7. 7

    如何在Spring MVC应用程序中测试Aspect

  8. 8

    在Spring MVC应用程序中检索会话数据

  9. 9

    Spring MVC应用程序中未填充选择框

  10. 10

    在Spring MVC应用程序中打开静态文件

  11. 11

    Spring MVC应用程序中的多个ScriptTemplateViewResolvers

  12. 12

    如何使WebFilter在非WebFlux /非反应式Spring Boot应用程序中工作?

  13. 13

    在已经将spring-mvc用作依赖项的应用程序中设置spring-mvc

  14. 14

    Spring @Secured和@PreAuthorize在普通(非Web)应用程序中不起作用

  15. 15

    如何在 Spring Boot 应用程序中从 Api 网关(Zuul)调用外部服务(非 MSA)

  16. 16

    Spring 4 WebSocket集成到Spring MVC应用程序中

  17. 17

    Spring 启动 POST 请求在 Spring MVC 应用程序中不起作用

  18. 18

    如何从Spring MVC应用程序的Tomcat文件夹中的bin目录中读取文件?

  19. 19

    从我的Spring MVC应用程序中的jsp调用外部js中的jQuery函数

  20. 20

    Spring Boot-非Web应用程序的长期运行的应用程序

  21. 21

    从非MVC事件中断应用程序流

  22. 22

    Spring 4 MVC应用程序-应用程序级异常处理程序

  23. 23

    Spring 4 MVC应用程序-应用程序级异常处理程序

  24. 24

    如何在Spring MVC应用程序中为不同的URL加载CSS

  25. 25

    如何在Spring 3 MVC应用程序中对文件上传实施病毒扫描

  26. 26

    在整个Spring MVC / JSP应用程序中显示导航栏

  27. 27

    url-pattern在Spring MVC应用程序中不起作用

  28. 28

    Spring MVC应用程序中如何在Hibernate中使用Jboss数据源

  29. 29

    如何在Spring MVC应用程序的Hibernate中打印生成的SQL?

热门标签

归档