我们正在从基于 LDAP 的身份验证转移到 SSO(Oracle 的 WebGate)。
现在,对于基于 LDAP,我们正在使用基于表单的身份验证,位置为 ( UsernamePasswordAuthenticationFilter
) FORM_LOGIN_FILTER
。
对于 SSO 用户将进行预身份验证,并发送带有其用户名的请求标头。我打算RequestHeaderAuthenticationFilter
在PRE_AUTH_FILTER
位置使用。
问题是我们需要同时存在这两个过滤器,并且能够根据属性文件中的值在它们之间切换。这是针对 SSO 在生产环境中无法按预期工作的情况,因此我们可以轻松地回退到 LDAP。
我的问题是如何正确实施这一点。如果同时出现两个具有这些位置的过滤器,会不会有任何副作用?扩展这些过滤器并在继承的类中添加属性检查更好,还是创建将处理它们之间切换的复合过滤器更好?