【发布时间】:2019-12-27 01:07:58
【问题描述】:
我们的应用当前设置了 OAuth OpenID 连接身份验证与外部(第三方)服务器。要求是使用从 LDAP(以及权限/角色)加载用户的用户详细信息服务来完成身份验证。所以authentication.getPrincipal() 应该返回我们使用的自定义 UserDetails 对象,该对象是通过使用从 Open ID 身份验证获得的用户名查询 LDAP 生成的。
我尝试了以下方法:
- 关注Similar Issue,但似乎在答案中它正在设置服务器端并且它也不起作用
- 尝试在 WebSecurityConfig 中添加自定义 UserDetailsService
其中 myCustomUserDetailsService() 处理对 LDAP 的调用并获取用户详细信息,包括权限。@Configuration public class OAuth2Config extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.oauth2Login().and().userDetailsService(myCustomUserDetailsService()); } }
我对 spring oauth2 框架不太熟悉,如果我错了,请纠正我:我猜我需要实现自己的用户信息端点来调用 LDAP,而不是提供的用户信息端点OpenID 服务给我?
【问题讨论】:
标签: spring spring-security spring-security-oauth2