我正在开发一种微服务,该微服务负责启动在CloudFoundry上运行的其他微服务。因此,我使用了cf-java-client(https://github.com/cloudfoundry/cf-java-client)。在我们的环境中,我们有一种特殊的机制来在CloudFoundry上对机器用户进行身份验证:
我必须将客户端ID和密码提供给某个端点,该端点将返回授权码。通过此代码,我可以为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来刷新凭证来解决了这个问题。

10-06 06:00