我正在使用 DefaultAWSCredentialsProviderChain 创建 AmazonS3Client。 在此内部,我使用了 WebIdentityTokenCredentialsProvider,它在内部调用 STSProfileCredentialsServiceLoader。 我的问题是,在刷新令牌的情况下,AmazonS3Client 如何自动了解它并使用新的凭证?创建 bean(AmazonS3Client) 后,如何刷新令牌并将其反映回已实例化的 bean?是否有任何修改 AmazonS3Client 的实现?我无法获取 AmazonS3Client 和 AWSCredentialsProvider 之间的代码流。有人可以帮我理解吗?
还有什么方法可以在创建 AWSIotMqttClient bean 时使用任何自定义实现来实现相同的功能(DefaultAWSCredentialsProviderChain)?
我正在使用 java-spring-boot 来构建应用程序。
AmazonS3Client 有一个对凭证提供者的引用。当它需要发出请求时,它将使用 WebIdentityTokenCredentialsProvider 提供的凭据(在本例中)对其进行签名。只要该提供者在最后一个凭证过期之前刷新其凭证,客户端就将始终拥有对有效凭证的引用。
不确定这是否是您的意思,但大多数采用 AWS IAM 令牌作为参数的构造函数已被弃用,转而使用 CredentialsProvider像这样。