Spring boot 针对Oauth2客户端调用的Spring Security Oauth2 Webclient设置失败,Oauth2.0访问令牌响应异常为空

Spring boot 针对Oauth2客户端调用的Spring Security Oauth2 Webclient设置失败,Oauth2.0访问令牌响应异常为空,spring-boot,spring-security,oauth-2.0,spring-security-oauth2,auth0,Spring Boot,Spring Security,Oauth 2.0,Spring Security Oauth2,Auth0,我正在尝试设置一个基于Oauth2.0的webclient,基本上是一个应用到应用的身份验证,作为Oauth2客户端 因为这是一个两步过程-令牌https:///oauth/token/ 作为Netty响应的一部分给出以下响应(OAuth2AccessTokenResponse) 这是我使用此Oauth2“enabled”Webclient从服务类调用时得到的最后一个异常:org.springframework.security.Oauth2.client.ClientAuthorization

我正在尝试设置一个基于Oauth2.0的webclient,基本上是一个应用到应用的身份验证,作为Oauth2客户端

因为这是一个两步过程-令牌https:///oauth/token/ 作为Netty响应的一部分给出以下响应(OAuth2AccessTokenResponse)

这是我使用此Oauth2“enabled”Webclient从服务类调用时得到的最后一个异常:
org.springframework.security.Oauth2.client.ClientAuthorizationException:[invalid_token_response]Empty Oauth2.0访问令牌响应

spring:
  security:
    oauth2:
      client:
        provider:
          auth0:
            token-uri: https://<my-domain>/oauth/token/
        registration:
          auth0:
            client-id: my-client-id
            client-secret: my-client-secret
            authorization-grant-type: client_credentials
spring:
安全:
oauth2:
客户:
供应商:
auth0:
令牌uri:https:///oauth/token/
注册:
auth0:
客户id:我的客户id
客户秘密:我的客户秘密
授权授予类型:客户端\u凭据
这是我得到的最后一个异常,而获取实际承载令牌的中间步骤是给我302状态码,没有真正的Oauth2承载令牌。请帮助我指出这里可能存在的问题


当我使用Oauth2RestTemplate尝试相同的凭据和设置时,它工作正常,让我使用生成的承载令牌执行Rest客户端调用。

您的授权服务器使用什么?您是否试图将SpringSecurityOAuth扩展项目与SpringSecurity的内置OAuth支持结合使用?另外,请分享您的
Oauth2RestTemplate
配置,以便与
WebClient
进行比较?
    @Bean
WebClient getAppDevOauth2WebClient(ReactiveOAuth2AuthorizedClientManager reactiveOAuth2AuthorizedClientManager) {
ServerOAuth2AuthorizedClientExchangeFilterFunction oauth =
new ServerOAuth2AuthorizedClientExchangeFilterFunction(reactiveOAuth2AuthorizedClientManager);
// (optional) explicitly opt into using the oauth2Login to provide an access token implicitly
// oauth.setDefaultOAuth2AuthorizedClient(true);
oauth.setAuthorizationFailureHandler((oAuth2AuthorizationException,principal,attr) -> {
LOG.error("oAuth2AuthorizationException : {} and principal : {} and attr :{}"
, oAuth2AuthorizationException.getMessage(), principal.getName(),attr.toString());
return null;
});
oauth.setDefaultClientRegistrationId("auth0");

    return WebClient.builder()
            .filter(oauth)
            .filter(logRequest())
            .build();
}

@Bean
public ReactiveOAuth2AuthorizedClientManager authorizedClientManager(
        ReactiveClientRegistrationRepository clientRegistrationRepository,
        ReactiveOAuth2AuthorizedClientService authorizedClientService) {

    ReactiveOAuth2AuthorizedClientProvider authorizedClientProvider =
            ReactiveOAuth2AuthorizedClientProviderBuilder.builder()
                    .refreshToken()
                    .clientCredentials()
                    .build();

    AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager authorizedClientManager =
            new AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager(
                    clientRegistrationRepository, authorizedClientService);
    authorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider);

    return authorizedClientManager;
}
spring:
  security:
    oauth2:
      client:
        provider:
          auth0:
            token-uri: https://<my-domain>/oauth/token/
        registration:
          auth0:
            client-id: my-client-id
            client-secret: my-client-secret
            authorization-grant-type: client_credentials