使用com.amazonaws:aws-java-sdk 1.11.18的意外v4签名的url

德罗·菲希曼

我们使用(com.amazonaws:aws-java-sdk版本1.11.18)创建Amazon S3签名的url-

AmazonS3 s3 = new AmazonS3Client(credentials);
s3.generatePresignedUrl(bucketName, objectName, expiration, method);

我们期望得到一个包含查询参数的签名URL,该参数称为“签名”(v2签名)。

我们注意到,在我们的服务器中,某些请求导致v4签名-我们意外地在其中获得了“ x-amz-signature”查询参数作为签名URL的一部分。

一旦开始-在服务器上对于相同的请求s3对象是可复制的。但是,对其他对象进行签名的请求仍将使用v2进行签名。在损坏的服务器上重新启动tomcat服务可以“解决”该问题。

知道什么会导致库开始使用v4签名某些对象吗?

德罗·菲希曼

该问题已在sdk的当前版本(1.11.244)中复制。最终,我们开始手动设置配置-

s3 = new AmazonS3Client(credentials,
                    new ClientConfiguration().withSignerOverride("NoOpSignerType"));

我们怀疑此行为是由于该createSigner方法的内部实现引起的,如果存储桶包含在地图中,则使用V4签署请求。--

private static final Map<String, String> bucketRegionCache

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

包com.amazonaws.services.lambda.runtime在AWS Java SDK 1.10.2中不存在

AWS Java SDK-将ProgressListener与TransferManager结合使用

AWS配置使用AWS Java SDK获得

使用AWS Java SDK v2从AWS EKS获取身份验证令牌

使用AWS Java SDK获取CloudWatch指标?

使用AWS SDK for Java API时SSLHandshakeException

使用AWS Java SDK的AWS计费信息

如何使用AWS Java SDK禁用请求级日志记录?

AWS Java SDK手动设置签名版本

AWS Java SDK凭证

PHP AWS SDK 3错误:AWS HTTP错误:cURL错误6:无法解析主机:s3.oregon.amazonaws.com

使用Java SDK访问AWS Transcribe作业的结果

使用Java SDK的AWS DataPipeline EvaluateExpression

如何解决使用SDK V4模板在C#中开发的Web Chat Bot的HTML页面问题在IE 11浏览器中未打开?

使用Java SDK生成Azure Blob存储的签名URL

如何使用Java SDK生成AWS引导证书?

无法使用Java SDK创建Aws Emr群集

使用aws-sdk-v1在ruby脚本中从AWS SSM参数存储获取数据

com.amazonaws.services.simpleemailv2软件包在AWS SES Java SDK jar中的位置

添加'com.amazonaws:aws-java-sdk:1.10.1'时发生Gradle编译错误

我的AWS ec2实例在ec2-xx-1xx-xxx-24.compute-1.amazonaws.com:8000上运行。我如何使其在ec2-xx-1xx-xxx-24.compute-1.amazonaws.com上运行

使用AWS Java的SDK,如何终止当前实例的CloudFormation堆栈?

使用Java SDK从AWS中的快照创建AMI

使用 AWS SDK JAVA 的具有布尔属性的 DynamoDB

使用 Java SDK2 获取临时 AWS 凭证

如何使用 Bot Framework V4 C# SDK 在 Teams 中迁移 1:1 主动消息功能

AWS 无法连接到端点 URL:“https://rekognition.eu-west-3.amazonaws.com/”

使用 Java2 aws sdk 时如何配置 Region?

AWS CLI Cloudformation - 端点 URL 上的读取超时:“https://cloudformation.us-east-1.amazonaws.com/”