使用spring安全oauth2登录的自定义AuthenticationPrincipal



我们希望使用外部身份提供程序将现有的spring安全项目从自定义用户名/密码实现(UserDetailsService等(迁移到oauth2登录。

但是,当通过外部提供程序登录时,安全上下文中的身份验证对象是OAuth2AuthenticationTokenOAuth2User是主体。

由于我们在应用程序中使用了自定义身份验证主体,因此我们希望将Oauth2User转换为自定义对象。

对于oauth2资源服务器,似乎有一个jwtAuthenticationConverterAPI,它可以让您将JWtAuthenticationToken转换为自定义AuthenticationToken,但我还没有为oauth2登录找到类似的东西。

是否有内置的API来实现这一点?

在这里回答我自己,以防其他人遇到同样的问题:在您的WebSecurityConfigurerAdapter:中


@Override
public void configure(HttpSecurity http) throws Exception {
http
// ...
.oauth2Login()
.userInfoEndpoint()
.oidcUserService(myCustomUserDetailsService)
;
}

最新更新