前言
入口配置
从web.xml说起,基本配置
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
springSecurityFilterChain是如何初始化的呢?在哪里定义?
spring-security-config-4.0.3.RELEASE.jar的META-INF/spring.handlers里面
http\://www.springframework.org/schema/security=org.springframework.security.config.SecurityNamespaceHandler
SecurityNamespaceHandler实现了NamespaceHandler接口,init(),parse(),decorate()方法。
parsers.put(Elements.HTTP, new HttpSecurityBeanDefinitionParser());
接着看HttpSecurityBeanDefinitionParser。
DelegatingFilterProxy是springSecurityFilterChain的代理,这个不多说了,代码很清晰。那么问题又来了。
为什么需要DelegatingFilterProxy代理springSecurityFilterChain?
后续解答。
HttpSecurityBeanDefinitionParser
DelegatingFilterProxy是作何作用?
spring-security和interceptor的执行先后顺序?
hasRole()和hasAnyRole()是在哪个类、如何起的作用?
sso和spring-security是如何继承的呢?
后面会一一解答