- 在autoConfiguration Jar的imports文件里面有
SecurityFilterAutoConfiguration类,这样springboot会自己加载这个类。
该类的作用是向容器内部注入一个RegisterBean叫DelegatingFilterProxyRegistrationBean,由于它同时实现了ServletContextInitializer接口,所以它在onstartup()的监听里面会
负责把一个代理filter(DelegatingFilterProxy) add到ServletContext的flter 链里面。servletContext.addFilter(getOrDeduceName(filter), filter);
该代理类DelegatingFilterProxy预留了一个targetBeanName字段,它是一个beanName (springSecurityFilterChain)给下游的实现商,只要实现提供了这样一个beanName的实例就接入进来了。springSecurity Jar就是实现了这样一个beanName叫springSecurityFilterChain的实例。
下面讲一讲下游的接入,以springsecurity为例:
下面这里会注入一个springsecurityfilterchain实例,就和上文中的对接上了。
springsecurityfiterchain故技重施也留了一个接入点securityfilterchain给研发,研发想容易提供beanName一样的对象,就会接入进来。例如:
这个集成思路就是这样。