是否有一个spring过滤器对象,允许我选择通过spring安全链传递哪个身份验证令牌。
我想检查一下httpsession,并选择使用CAS过滤器生成的令牌还是我从httpsession生成的令牌。
答案 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);
}
}