【问题标题】:Get a ClassCastException when Spring upload file filter by Apache ShiroApache Shiro 的 Spring 上传文件过滤器时获取 ClassCastException
【发布时间】:2014-02-13 10:46:30
【问题描述】:

我用 Apache Shiro 做一个 Web 项目的 AA,Spring 也用过。上传文件时,会出现以下异常,我无法从谷歌找到相关案例。有人见过这个吗?

java.lang.ClassCastException: org.apache.shiro.web.servlet.ShiroHttpServletRequest cannot be cast to org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest</h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u>java.lang.ClassCastException: org.apache.shiro.web.servlet.ShiroHttpServletRequest cannot be cast to org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest</u></p><p><b>description</b> <u>The server encountered an internal error that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>javax.servlet.ServletException: java.lang.ClassCastException: org.apache.shiro.web.servlet.ShiroHttpServletRequest cannot be cast to org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest
org.apache.shiro.web.servlet.AdviceFilter.cleanup(AdviceFilter.java:196)
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:148)
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
com.weardex.web.filter.auth.AuthFilter.doFilter(AuthFilter.java:62)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

【问题讨论】:

    标签: spring security web upload shiro


    【解决方案1】:

    我在使用 grails 时遇到了类似的问题(相同的区别)。我错过了表单中的 enctype (enctype="multipart/form-data") 并且它再次起作用了:

    基于这个答案groovy upload file 我意识到我的包含形式覆盖了内部形式。

    【讨论】:

      猜你喜欢
      • 2016-08-13
      • 2014-06-17
      • 2019-01-04
      • 1970-01-01
      • 2017-03-17
      • 2015-11-17
      • 2014-02-19
      • 2014-08-31
      • 2012-12-28
      相关资源
      最近更新 更多