当我们的shiro交给spring管理后,我们可以在web.xml中定义过滤,但是这样的过滤显得粗粒化了,因为只是给了一个/*:
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我们可以在shiro的xml文件里进行定义过滤链,这样更加的细粒化:
<!--过滤器链 -->
<property name="filterChainDefinitions">
<value>
/tologin.action= anon
/login.action =anon
/staticfile/** = anon
/** = authc
</value>
</property>
这样我们就可以定义过滤链了,其中,/**表示拦截所有的请求和静态资源文件
过滤链其实说起来也很简单,过滤的目的要么是放行通过要么是拦截不让其通过,这里的anon就是通过,authc就是不让其通过,我们可以在这个value标签可以写无限多个放行与拦截,所以感觉上就形成了一个链式结构。