我正在实现三种类型的身份验证机制,即SAML和两种自定义身份验证。因此,我如何实现基于报头的过滤器--它将检测身份验证类型,并将其路由到适当的身份验证机制。
SAML:在SAML的情况下,如果cookie的密钥为saml,则必须进行SAML身份验证。在SAML身份验证中,每当用户登录时,我都会在浏览器中插入名为saml的cookie,对于进一步的请求,我需要传递saml cookie值并检查身份验证是否有效,从而调用REST。Custom authentication:如果cookie密钥具有token1或token2,则执行自定义身份验证,这涉及通过传递令牌调用Rest并检查用户是否有效。我了解带有spring安全性的SAML,但正如我在SAML中解释的那样,我们如何进行rest调用并实现一个过滤器,以调用适当的身份验证机制,如何实现这一点。是否有任何可以帮助解决上述情况的参考。
发布于 2021-01-29 22:09:51
您可以使用SpringSecurityAuthenticationManagerBuilder来完成它。使用其他地方定义的三个自动配置提供程序创建一个安全配置
@Autowired
private CustomAuthenticationProvider1 customProvider1;
@Autowired
private CustomAuthenticationProvider2 customProvider2;
@Autowired
private SAMLAuthenticationProvider samlProvider;然后使用AuthenticationManagerBuilder添加它们
authenticationManagerBuilder.authenticationProvider(customProvider1);
authenticationManagerBuilder.authenticationProvider(customProvider2);
authenticationManagerBuilder.authenticationProvider(samlProvider);对于完整的示例,您可以看到这篇文章
发布于 2021-02-01 03:58:49
我假设您正在使用Azure进行SAML身份验证。按照这种方式实现自定义和saml身份验证。
username和password进行身份验证。RestTemplate的帮助下验证此令牌。如果令牌是有效的,那么创建普通的spring令牌。现在,实际上您正在维护用于所有身份验证的单一令牌。
https://stackoverflow.com/questions/65915078
复制相似问题