【问题标题】:Spring Filter along with custom filter弹簧过滤器和自定义过滤器
【发布时间】:2016-04-17 10:03:39
【问题描述】:

我在 web.xml 中配置了以下过滤器

    <filter>
        <filter-name>accessFilter</filter-name>
    <filter-class>com.org.security.AccessFilter</filter-class>
        </filter>
    <filter-mapping>
        <filter-name>accessFilter</filter-name>
    <url-pattern>*.html</url-pattern>
        </filter-mapping>
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter>
          <filter-name>sitemesh</filter-name>
          <filter-class>org.sitemesh.config.ConfigurableSiteMeshFilter</filter-class>
     </filter>
    <filter-mapping>
         <filter-name>sitemesh</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>

这是我的自定义过滤器,我在上面检查请求的页面是否获得授权:

    <filter>
         <filter-name>accessFilter</filter-name>
         <filter-class>com.zk.dcs.webapp.security.AccessFilter</filter-class>
    </filter>
    <filter-mapping>
         <filter-name>accessFilter</filter-name>
         <url-pattern>*.html</url-pattern>
    </filter-mapping>

一切正常,但无法正确呈现 UI。

寻求支持,这里有什么问题?

【问题讨论】:

  • 您是否也使用 spring security,还是仅使用自定义过滤器?在浏览器调试中,您会为缺少的元素获得什么 http 响应代码?
  • 也使用弹簧安全,这是我的示例代码: if(isAuthorized(url,request)){ chain.doFilter(request, response); }else{ request.getRequestDispatcher("/common/forbidden.jsp").forward(request, response); }
  • 当我们转发时,它似乎无法通过其他过滤器进行链接,如果我错了,请纠正我。
  • if(isAuthorized(url,request)){ chain.doFilter(request, response); }else{ request.getRequestDispatcher("/common/forbidden.jsp").forward(request, response); }

标签: spring spring-security filter sitemesh


【解决方案1】:

谢谢, 我发现了这个问题,我的资源像“.css.html”格式一样被传递,我在 *.html 上进行了过滤 我修复了一些检查,例如

if( (url.contains(".css")) || (url.contains(".js")) || (url.contains("img")) ||(url.contains("image"))){
         chain.doFilter(request, response);
    }

【讨论】:

    猜你喜欢
    • 2020-02-08
    • 1970-01-01
    • 2016-06-25
    • 2014-05-30
    • 2020-12-21
    • 1970-01-01
    • 2017-03-18
    • 2017-03-18
    相关资源
    最近更新 更多