Spring OAUTH2 在 oauth 客户端上获取用户详细信息
Spring OAUTH2 fetch userdetails on oauth client
我是 spring oauth2 的新手。我想知道是否可以在 oauth 客户端附加自定义用户详细信息。
像这样
@EnableOAuth2Sso
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
@Qualifier("customUserDetailsService")
private UserDetailsService userDetailsService;
@Override
public void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/**")
.authorizeRequests()
.antMatchers("/", "/login**")
.permitAll()
.anyRequest()
.authenticated();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
}
这不起作用,因为配置以某种方式被忽略了。
此客户端在 spring oauth2 身份验证服务器中成功验证,但我想在获得授权后加载其他用户详细信息。
UserDetailsService
的自定义实现用于在身份验证期间按用户名加载用户,并在 AuthorizationServerConfigurerAdapter
下进行。我们重写它的 configure(..) 方法,将 AuthorizationServerEndpointsConfigurer
作为参数并将其设置在那里的方法。
同样,我们可以编写ClientDetailsService
的自定义实现。在身份验证期间,这用于通过客户端 ID 加载客户端。此自定义实现的注册方式也与 UserDetailsService
相同。
@Override
public void configure(final AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager);
endpoints.userDetailsService(userDetailsService);
endpoints.tokenStore(tokenStore);
endpoints.setClientDetailsService(clientDetailsService);
endpoints.accessTokenConverter(accessTokenConverter);
}
我是 spring oauth2 的新手。我想知道是否可以在 oauth 客户端附加自定义用户详细信息。
像这样
@EnableOAuth2Sso
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
@Qualifier("customUserDetailsService")
private UserDetailsService userDetailsService;
@Override
public void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/**")
.authorizeRequests()
.antMatchers("/", "/login**")
.permitAll()
.anyRequest()
.authenticated();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
}
这不起作用,因为配置以某种方式被忽略了。
此客户端在 spring oauth2 身份验证服务器中成功验证,但我想在获得授权后加载其他用户详细信息。
UserDetailsService
的自定义实现用于在身份验证期间按用户名加载用户,并在 AuthorizationServerConfigurerAdapter
下进行。我们重写它的 configure(..) 方法,将 AuthorizationServerEndpointsConfigurer
作为参数并将其设置在那里的方法。
同样,我们可以编写ClientDetailsService
的自定义实现。在身份验证期间,这用于通过客户端 ID 加载客户端。此自定义实现的注册方式也与 UserDetailsService
相同。
@Override
public void configure(final AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager);
endpoints.userDetailsService(userDetailsService);
endpoints.tokenStore(tokenStore);
endpoints.setClientDetailsService(clientDetailsService);
endpoints.accessTokenConverter(accessTokenConverter);
}