java.lang.SecurityException AWSCredentialsProvider 签名者信息不匹配

标签 java aws-sdk

我正在使用 2 个 Amazon 提供的库:redshift-jdbc42-1.2.27.1051aws-java-sdk-core-1.11.600。这两个库都在包 com.amazonaws.auth 下定义了一个类 AWSCredentialsProvider。当我尝试使用我的应用程序时,出现此异常:

由以下原因引起:java.lang.SecurityException:类“com.amazonaws.auth.AWSCredentialsProvider”的签名者信息与同一包中其他类的签名者信息不匹配

我不知道如何解决这个问题。任何帮助将不胜感激!

最佳答案

我发现在 Amazon Redshift JDBC 驱动程序文档中,他们说:

If you use the Amazon Redshift JDBC driver for database authentication, you must have AWS SDK for Java 1.11.118 or later in your Java class path. If you don't have AWS SDK for Java installed, you can use a driver that includes the AWS SDK.

该问题是由于我现在拥有两个库提供的 AWS SDK 组件而引起的。现在,我不需要与驱动程序一起打包的 AWS 开发工具包,因为我可以从 AWS S3 开发工具包中使用它。事实上,Amazon 鼓励开发人员在没有预打包 SDK 的情况下使用 Redshift JDBC 驱动程序:

Important

We strongly recommend using an Amazon Redshift JDBC driver that doesn't include the AWS SDK if possible.

如果您遇到此问题并从 Maven 下载依赖项,您可以在此处找到非 aws-sdk 驱动程序:https://mvnrepository.com/artifact/com.amazon.redshift/redshift-jdbc42-no-awssdk

关于java.lang.SecurityException AWSCredentialsProvider 签名者信息不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57260883/

相关文章:

java - Hibernate缓存更新机制

java - 在工厂类内部或外部有一个缓存机制更好吗?

java - MigLayout 奇怪的对齐顶部行为

java - pyCharm调试: JRE without jstack?

java - 带有 JAVA 和 Docker Toolbox 的 AWS SAM 本地

typescript - 将 TypeScript 与 'aws-sdk-mock' 一起使用

amazon-web-services - .NET Core 2.0添加服务IAmazonS3

node.js - 如何通过 aws-cli 创建具有嵌套属性定义的 dynamodb 模式?

amazon-web-services - AWS Systems Manager `GetParametersByPath` API 返回过时的结果

java - 已写入内容后的response.addCookie