Dav*_*d V 6 java spring spring-security spring-security-oauth2
我们正在试验 Spring Security 5 的新OAuth 2.0 登录功能。通过简单的设置,Spring 创建Authentication名称与 OAuth 2.0 系统中用户 ID 匹配的对象。因此,如果使用 Google 登录,Authentication::getName()则会返回 Google Id。
我们想要使用我们自己的内部 Id,并将 OAuth2.0 提供商的用户 Id 映射到我们自己的用户 Id。例如,我们将获取 Google 用户 ID 并使用它来加载我们自己的 ID。这样做的正确方法是什么?
我们尝试配置 OIDC 用户服务,如下所示。
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.oauth2Login()
.userInfoEndpoint()
.oidcUserService(new MappingOidcUserService());
}
Run Code Online (Sandbox Code Playgroud)
然后我们就可以配置 的值了Authentication::getName()。但这也改变了OAuth2AuthorizedClient::getPrincipalName()我们自己的Id的值。我们希望仍然能够获取外部 Id。这也有点令人担忧这可能会导致什么其他影响。
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |