0

这是来自文档

公共 HttpSecurity oauth2Client(Customizer<OAuth2ClientConfigurer> oauth2ClientCustomizer)抛出 java.lang.Exception

配置 OAuth 2.0 客户端支持。

示例配置

以下示例演示如何为所有端点启用 OAuth 2.0 客户端支持。

 @Configuration
 @EnableWebSecurity
 public class OAuth2ClientSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
                http
                        .authorizeRequests((authorizeRequests) ->
                                authorizeRequests
                                        .anyRequest().authenticated()
                        )
                        .oauth2Client(withDefaults());
        }
 }
 

参数: auth2ClientCustomizer - 为 OAuth2ClientConfigurer 提供更多选项的定制器

返回:用于进一步自定义的 HttpSecurity

我的理解是任何到达该服务器的请求都应该经过身份验证。

.oauth2Client(withDefaults());在这种情况下如何提供 帮助?

如果我没记错的话,一个 oAuth2 客户端是发送请求的那个,我们实际上可以配置什么?该文档并没有真正解释太多。

4

2 回答 2

2

HttpSecurity 的 http 实例是“bean 设置服务器/应用程序端”。

它的方法oauth2Client与客户端配置无关,而是服务器/应用程序应该如何以及在何处处理它们。

例子:

  • 哪些客户已获得授权
  • 在哪里存储授权客户
  • 如何授权客户
  • 如何删除旧的授权客户
于 2021-10-30T22:38:11.697 回答
1

我想在这里,您可以找到有关 oauth2Client 默认值的更多详细信息。

@EnableWebSecurity
public class OAuth2ClientSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .oauth2Client(oauth2Client ->
                oauth2Client
                    .clientRegistrationRepository(this.clientRegistrationRepository())
                    .authorizedClientRepository(this.authorizedClientRepository())
                    .authorizedClientService(this.authorizedClientService())
                    .authorizationCodeGrant(authorizationCodeGrant ->
                        authorizationCodeGrant
                            .authorizationRequestRepository(this.authorizationRequestRepository())
                            .authorizationRequestResolver(this.authorizationRequestResolver())
                            .accessTokenResponseClient(this.accessTokenResponseClient())
                    )
            );
    }
}
于 2021-10-30T22:44:39.243 回答