CAS登录后如何使用spring过滤器模拟用户

时间:2013-04-09 22:18:44

标签: spring-security cas

是否有一个spring过滤器对象,允许我选择通过spring安全链传递哪个身份验证令牌。

我想检查一下httpsession,并选择使用CAS过滤器生成的令牌还是我从httpsession生成的令牌。

1 个答案:

答案 0 :(得分:0)

请执行以下操作:

1)覆盖CasAuthenticationFilter

2)实现你自己的尝试身份验证方法(下面)

3)配置过滤器

public Authentication attemptAuthentication(final HttpServletRequest request, final HttpServletResponse response)
       throws AuthenticationException, IOException {
    // Access to HTTP request
    if (it CAS authentication) {
        return  super.attemptAuthentication(request,response);
    } else {
        // provide username, password
       final UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, password);
       authRequest.setDetails(authenticationDetailsSource.buildDetails(request));
       return this.getAuthenticationManager().authenticate(authRequest);
   }
}