DelegatingFilterProxy的作用
2018-03-01 18:10
387 查看
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
2.4版本的servlet规范在部属描述符中新增加了一个<dispatcher>元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个<filter-mapping>元素中加入任意数目的<dispatcher>,使得filter将会作用于直接从客户端过来的request,通过forward过来的request,通过include过来的request和通过<error-page>过来的request。如果没有指定任何< dispatcher >元素,默认值是REQUEST。
使filter可以使用spring中的bean,达到可插拔的效果。比如你可以使用shiro或者springSecurity等安全框架来进行权限管理,这样也算是使安全验证这一块与spring解耦。
具体过程:web.xml中的ContextLoaderListener会将spring及你使用的shiro或者springSecurity的相关配置文件加载,然后初始化声明的bean,这其中就有filter中要用到的bean;这样filter用到这些bean的时候就可以到spring的bean容器中去取了。
就是一个filter的代理,最终的目的是让这个filter拥有使用spring管理的bean的权限
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
2.4版本的servlet规范在部属描述符中新增加了一个<dispatcher>元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个<filter-mapping>元素中加入任意数目的<dispatcher>,使得filter将会作用于直接从客户端过来的request,通过forward过来的request,通过include过来的request和通过<error-page>过来的request。如果没有指定任何< dispatcher >元素,默认值是REQUEST。
使filter可以使用spring中的bean,达到可插拔的效果。比如你可以使用shiro或者springSecurity等安全框架来进行权限管理,这样也算是使安全验证这一块与spring解耦。
具体过程:web.xml中的ContextLoaderListener会将spring及你使用的shiro或者springSecurity的相关配置文件加载,然后初始化声明的bean,这其中就有filter中要用到的bean;这样filter用到这些bean的时候就可以到spring的bean容器中去取了。
就是一个filter的代理,最终的目的是让这个filter拥有使用spring管理的bean的权限
相关文章推荐
- DelegatingFilterProxy作用浅析
- spring DelegatingFilterProxy,targetFilterLifecycle的作用
- spring filter的targetFilterLifecycle作用 DelegatingFilterProxy 代理
- filter中的DelegatingFilterProxy使用事例
- 1.配置DelegatingFilterProxy
- DelegatingFilterProxy的原理及使用
- DelegatingFilterProxy的原理及运用
- spring DelegatingFilterProxy 过滤器 的原理及运用
- Spring MVC过滤器-委派过滤器代理(DelegatingFilterProxy)
- DelegatingFilterProxy
- 配置DelegatingFilterProxy使用Spring管理filter chain
- 1.配置DelegatingFilterProxy
- [置顶] 自学-DelegatingFilterProxy-04
- DelegatingFilterProxy【转】
- 08、Spring_web.xml_DelegatingFilterProxy
- spring security之DelegatingFilterProxy和FilterChainProxy
- DelegatingFilterProxy的介绍
- DelegatingFilterProxy的原理及使用
- DelegatingFilterProxy【转】
- Spring MVC过滤器-委派过滤器代理(DelegatingFilterProxy)