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