Springsecurity之CasAuthenticationFilter

    注:分析的版本是Springsecurity4.3.x.RELEASEjava

    因为用Springsecurity来使用单点登陆,因此看了下CasAuthenticationFilter,记录下本身的看后结果吧。git

    先上一张图,是CasAuthenticationFilter的类继承图,以下图1所示:github

                                                               图1spring

    AbstractAuthenticationProcessingFilter中使用了Template模式,定义了通用的模板,而子类来实现特定的方法,下面来看CasAuthenticationFilter的doFilter方法时序图,原图见个人Githubcode

                                     图2 CasAuthenticationFilter的doFilter调用时序图blog

    图2中的步骤9,会从request中获得ticket的值做为password,_cas_stateful_做为username,而后建立UsernamePasswordAuthenticationToken,并将这个UsernamePasswordAuthenticationToken传递给AuthenticationManager。继承

 

思考:get

  • AbstractAuthenticationProcessingFilter的doFilter方法中有以下List-1中的内容,而continueChainBeforeSuccessfulAuthentication
    的默认是false,CasAuthenticationFilter也没有修改这个值,那么若是这个Filter以后,还有其它Filter,这些Filter是否不会被执行了?

    List-1it

// Authentication success
		if (continueChainBeforeSuccessfulAuthentication) {
			chain.doFilter(request, response);
		}
  • CasAuthenticationFilter是在什么地方被加入到Springsecurity的Filter链的?
相关文章
相关标签/搜索