DelegatingFilterProxy和ShiroFilte

2017-08-23  本文已影响0人  JooYip

DelegatingFilterProxy配置在web.xml文件中是filter

ShiroFilterFactoryBean配置在applicationContext.xml文件中

要求filter-name与bean-id相同。


DelegatingFilterProxy的入口是initFilterBean方法。

initFilterBean()

会把filter-name设置给targetBeanName,所以bean-id实际要求是和targetBeanName相同,所以可以在filter标签内设置初始化参数targetBeanName和bean-id相同。


getFilterName到了GenericFilterBean类中,是DelegatingFilterProxy的父类

getFilterName()

filterConfig在init方法中进行设置:

init

回到DelegatingFilterProxy的入口initFilterBean方法:

initFilterBean initDelegate

getBean就是到applicationContext容器中找到id为targetBeanName且为Filter的实现类的bean


怎么找到呢bean呢,首先ShiroFilterFactoryBean是一个工厂类,它可以创建Filter,如果我们配置filter的property的话,就可以创建。过程在ShiroFilterFactoryBean的createInstance方法中:

createInstance

它会把我们的filter创建成filterchain然后执行。

参考:

www.cnblogs.com/question-sky/p/6783060.html

上一篇 下一篇

猜你喜欢

热点阅读