我正在开发一种微服务,该微服务负责启动在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来刷新凭证来解决了这个问题。