核心服務:AuthenticationManager
,UserDetailsService
和AccessDecisionManager
java
AuthenticationManager是一個接口,它默認的實現類是ProviderManager,ProviderManager
並非本身直接對請求進行驗證,而是將其委派給一個AuthenticationProvider
列表。web
spring-security.xml中配置spring
在web.xml配置DelegatingFilterProxy。api
<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>
DelegatingFilterProxy這個類自己與springsecurity無關。它的做用是充當代理,將Spring應用程序上下文中的bean委託給servlet 容器中的filter,將其關聯起來。安全
DelegatingFilterProxy類繼承於抽象類GenericFilterBean,間接地implement 了javax.servlet.Filter接口。session
Servlet容器在啓動時,首先會調用Filter的init方法。app
GenericFilterBean的做用主要是能夠把Filter的初始化參數自動地set到繼承於GenericFilterBean類的Filter中去。ide
Alias | Filter Class | Namespace Element or Attribute |
---|---|---|
CHANNEL_FILTERui |
|
|
SECURITY_CONTEXT_FILTER |
|
|
CONCURRENT_SESSION_FILTER |
|
|
HEADERS_FILTER |
|
|
CSRF_FILTER |
|
|
LOGOUT_FILTER |
|
|
X509_FILTER |
|
|
PRE_AUTH_FILTER |
|
N/A |
CAS_FILTER |
|
N/A |
FORM_LOGIN_FILTER |
|
|
BASIC_AUTH_FILTER |
|
|
SERVLET_API_SUPPORT_FILTER |
|
|
JAAS_API_SUPPORT_FILTER |
|
|
REMEMBER_ME_FILTER |
|
|
ANONYMOUS_FILTER |
|
|
SESSION_MANAGEMENT_FILTER |
|
|
EXCEPTION_TRANSLATION_FILTER |
|
|
FILTER_SECURITY_INTERCEPTOR |
|
|
SWITCH_USER_FILTER |
|
N/A |