为 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 来刷新凭据来解决这个问题。
我正在开发一个微服务,负责在 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 来刷新凭据来解决这个问题。