注:分析的版本是Springsecurity4.3.x.RELEASEjava
因爲用Springsecurity來使用單點登陸,因此看了下CasAuthenticationFilter,記錄下本身的看後結果吧。git
先上一張圖,是CasAuthenticationFilter的類繼承圖,以下圖1所示:github
圖1spring
AbstractAuthenticationProcessingFilter中使用了Template模式,定義了通用的模板,而子類來實現特定的方法,下面來看CasAuthenticationFilter的doFilter方法時序圖,原圖見個人Github。code
圖2 CasAuthenticationFilter的doFilter調用時序圖blog
圖2中的步驟9,會從request中獲得ticket的值做爲password,_cas_stateful_做爲username,而後建立UsernamePasswordAuthenticationToken,並將這個UsernamePasswordAuthenticationToken傳遞給AuthenticationManager。繼承
思考:get
List-1it
// Authentication success if (continueChainBeforeSuccessfulAuthentication) { chain.doFilter(request, response); }