在看FilterChainProxy的時候,發現使用到SecurityFilterChain,能夠看下個人這篇博客。java
注意:Springsecurity版本是4.3.x.RELEASE.net
在看源碼的過程當中,發現SecurityFilterChain的實現類只有一個DefaultSecurityFilterChain,Spring中通常狀況下一個接口的實現都會有好多實現類,只有一個實現類的比較少見。code
先上一張圖,以下圖1所示。blog
圖1接口
List-1 最重要的倆個方法get
public List<Filter> getFilters() { return filters; } public boolean matches(HttpServletRequest request) { return requestMatcher.matches(request); }
如List-1所示,最重要的倆個方法就是matches和getFilters。感受DefaultSecurityFilterChain就是對RequestMatcher和Filter的封裝而已。那麼在FilterChainProxy中爲何不直接使用RequestMatcher和Filter呢,還用SecurityFilterChain做爲中轉呢?我的的理解與思考以下:源碼