Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  • 深圳市
  • 菜鸟工程师

可爱的留言者

SpringMVC集成Shiro设置不拦截静态文件

2016年03月18 19:58 4,821 0

好吧,折腾了好久Shiro.之前遇见的问题是:

    部分在页面引用的css,js文件无法被正常加载,报302状态.


因为框架集成的是SpringMVC + Shiro,最开始预测问题是因SpringMVC代理了Servlet的请求,导致静态文件无法被正常解析引起的.

但是,配置了几次Spring资源文件这块,结果问题还是依旧...


然后就看到了Shiro的Filter下面的/.


所有的请求必须都经过Shiro了...会不会是Shiro过滤了静态文件?


尝试注释了Shiro的Filter,然后,页面正常加载了...


好吧,又是一顿查资料,结果最终的解决方案是:

在Spring的集成配置文件中添加:

    <!-- Shiro Filter -->
    <bean id="shiroFilter"
        class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager" />
        <property name="loginUrl" value="/" />
        <property name="successUrl" value="/system/main" />
        <property name="unauthorizedUrl" value="/system/error" />
        <property name="filterChainDefinitions">
            <value>
            /login = anon
            /validateCode = anon
            /resources/** = anon <!-- 配置静态资源不被拦截,所有静态文件必须放在WEB-INF/resources中,不然会报302错误 -->
               /** = authc
            </value>
        </property>
    </bean>

=====================OK,问题解决...===============

点赞(0)
点了个评