在spring security中,如何基于头进行多重身份验证

fnatzsnv  于 2021-10-10  发布在  Java
关注(0)|答案(2)|浏览(354)

我有一个与saml身份验证集成的spring应用程序。但现在我想向其他应用程序和第三方系统公开我的api,我正在使用基于令牌的身份验证。那么,如何根据报头检查要选择的身份验证机制呢。如果页眉有 X-Apikey as报头然后需要应用基于报头的身份验证,其中必须通过调用RESTAPI结果(身份验证和授权服务器)来检查令牌。如果令牌不具有 X-Apikey 然后,报头需要执行saml身份验证。如何使用已集成的saml应用程序实现这一点。

eqoofvh9

eqoofvh91#

您可以使用在中添加的自定义筛选器

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            ...
            .addFilter(customBeforeAuthenticationFilter, CustomBeforeAuthenticationFilter.class)
            ...
}

详情如下:https://www.marcobehler.com/guides/spring-security
2) 另一种选择是在安全过滤器中添加“authenticationmanagerresolver”,然后您可以检查标题并决定使用的身份验证
以下是指南:https://www.baeldung.com/spring-security-authenticationmanagerresolver

lf3rwulv

lf3rwulv2#

您正在寻找的是authenticationmanagerresolver。您可以在运行时根据上下文(通常是httprequest)自定义要应用的身份验证逻辑。看这个例子,这里是一个专门的演示

相关问题