Spring boot 如何在spring boot中使用WebClient配置OAuthClient2Password

Spring boot 如何在spring boot中使用WebClient配置OAuthClient2Password,spring-boot,spring-security-oauth2,reactive,spring-webclient,oauth2client,Spring Boot,Spring Security Oauth2,Reactive,Spring Webclient,Oauth2client,我需要使用OAuth2Password连接到其他具有资源所有者名称和密码的服务。我已将webclient和客户端注册配置如下: @豆子 网络客户端网络客户端(ReactiveClientRegistration存储库clientRegistrations){ 公共反应clientRegistrationRepository clientRegistrationRepository(){ 我总是得到401个未经验证的错误,并且我没有得到任何令牌 你能帮我知道我是否配置了错误的东西吗 问候,, 斯蒂

我需要使用OAuth2Password连接到其他具有资源所有者名称和密码的服务。我已将webclient和客户端注册配置如下:

@豆子 网络客户端网络客户端(ReactiveClientRegistration存储库clientRegistrations){

公共反应clientRegistrationRepository clientRegistrationRepository(){

我总是得到401个未经验证的错误,并且我没有得到任何令牌

你能帮我知道我是否配置了错误的东西吗

问候,, 斯蒂芬

    TcpClient tcpClient = TcpClient.create().option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10000)
            .doOnConnected(connection -> {
                connection.addHandlerLast(new ReadTimeoutHandler(10000, TimeUnit.MILLISECONDS));
                connection.addHandlerLast(new WriteTimeoutHandler(10000, TimeUnit.MILLISECONDS));
            });

    InMemoryReactiveOAuth2AuthorizedClientService authClientService = new InMemoryReactiveOAuth2AuthorizedClientService(
            clientRegistrations);
    ServerOAuth2AuthorizedClientExchangeFilterFunction oauth = new ServerOAuth2AuthorizedClientExchangeFilterFunction(
            new AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager(clientRegistrations,
                    authClientService));

    return WebClient.builder().clientConnector(new ReactorClientHttpConnector(HttpClient.from(tcpClient)))
            .filter(oauth).build();
}
    Map<String,Object > map = new HashMap<>();
    map.put(OAuth2AuthorizationContext.USERNAME_ATTRIBUTE_NAME, USERNAME);
    map.put(OAuth2AuthorizationContext.PASSWORD_ATTRIBUTE_NAME, PASSWORD);
 
    ClientRegistration clientRegistration;
    clientRegistration = ClientRegistration.withRegistrationId("configured")
            .authorizationGrantType(AuthorizationGrantType.PASSWORD).clientId(CLIENTID)
            .clientSecret(CLIENTSECRET).
          .providerConfigurationMetadata(map).userInfoAuthenticationMethod(AuthenticationMethod.FORM)
            .tokenUri(tokenURL).build();
    
   ;

    return new InMemoryReactiveClientRegistrationRepository(clientRegistration);
}
  webclient
      .get().
      .url(......)
    
   .attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.clientRegistrationId("configured"))
  .retrieve().bodytoMono(String.class);