我正在实现三种身份验证机制,它们是saml和两种自定义身份验证。那么,我如何实现一个基于头的过滤器呢?它将检测身份验证类型,并将路由到适当的身份验证机制。 SAML
:在saml的情况下,如果cookie的密钥为 saml
然后必须进行saml身份验证。在saml身份验证中,每当用户登录时,我都会在浏览器中插入一个名为saml的cookie,对于进一步的请求,我需要通过传递调用restapi saml
cookie值并检查身份验证是否有效。 Custom authentication
:如果cookie密钥具有 token1
或者 token2
然后执行自定义身份验证,其中包括通过传递令牌调用restapi,并检查用户是否有效。
我知道saml与spring security的关系,但正如我在saml中解释的那样,我们如何进行restapi调用并实现一个调用适当身份验证机制的过滤器,我们如何实现这一点。是否有任何参考,可以帮助fr上述情况。
2条答案
按热度按时间yiytaume1#
您可以使用spring security authenticationmanagerbuilder来完成。使用在别处定义的三个自动连线自动验证提供程序创建安全配置
然后使用authenticationmanagerbuilder添加它们
有关完整的示例,请参阅本文
64jmpszr2#
我假设您正在使用azure进行saml身份验证。按照这种方式实现自定义和saml身份验证。
首先,使用Spring Security 实现简单的jwt令牌身份验证。我希望使用这个用户可以做身份验证
username
以及password
.实现saml身份验证,我假设您正在使用azure。此azure将返回一个令牌。
将azure令牌从前端传递到rest api。在的帮助下使用azure api验证此令牌
RestTemplate
. 如果令牌有效,那么创建普通的springjwt令牌。现在实际上您正在为所有身份验证维护单个令牌。