为 CloudFoundry Java CLI 实施 TokenProvider 时出现问题

Problems implementing TokenProvider for CloudFoundry Java CLI

我正在开发一个微服务,负责在 CloudFoundry 上启动其他微服务 运行。因此我使用 cf-java-client (https://github.com/cloudfoundry/cf-java-client)。在我们的环境中,我们有一个特殊的机制来验证 CloudFoundry 上的机器用户: 我必须给某个端点一个客户端 ID 和密码,即 returns 一个授权码。使用此代码,我可以为 CloudFoundry(仅存在 60 分钟)创建临时凭证。到目前为止,我实现了以下行为:

  @Bean
  PasswordGrantTokenProvider tokenProvider() {
    final Map<String, String> temporaryCredentialsMap =
        getTemporaryCredentials(clientId, clientSecret);

    return PasswordGrantTokenProvider.builder()
        .username(temporaryCredentialsMap.get("username"))
        .password(temporaryCredentialsMap.get("password"))
        .build();
  }

我现在的问题是,当凭据过期时,我收到 HTTP 401 错误凭据。我正在考虑重新创建上面的 bean。这可能吗?或者有什么其他想法?

我通过将所有 cf 相关 bean 的范围更改为原型范围并从上下文中请求一个新 bean 来刷新凭据来解决这个问题。