本文介紹了java.lang.SecurityException AWSCredentialsProvider簽名者信息不匹配的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我使用的是Amazon提供的兩個庫:redshift-jdbc42-1.2.27.1051
和aws-java-sdk-core-1.11.600
。這兩個庫都在包com.amazonaws.auth
下定義了一個類AWSCredentialsProvider
。當我嘗試使用我的應用程序時,出現以下異常:
Caused by: java.lang.SecurityException: class "com.amazonaws.auth.AWSCredentialsProvider"'s signer information does not match signer information of other classes in the same package
我不確定如何解決此問題。如有任何幫助,我們將不勝感激!
推薦答案
我發現在亞馬遜的紅移JDBC驅動文檔中,他們說:
如果您使用Amazon RedShift JDBC數據庫驅動程序
身份驗證,您必須在中安裝AWS SDK for Java 1.11.118或更高版本
您的Java類路徑。如果您沒有安裝AWS SDK for Java,
您可以使用包含AWS SDK的驅動程序。
問題是因為我現在擁有兩個庫都提供的AWS SDK組件。現在,我不需要將AWS SDK與驅動程序打包在一起,因為我可以從AWS S3 SDK中使用它。事實上,Amazon鼓勵開發人員在沒有預打包SDK的情況下使用RedShift JDBC驅動程序:
重要信息
我們強烈建議您使用Amazon RedShift JDBC驅動程序
如果可能,不包括AWS SDK。
如果您遇到此問題,并且正在從Maven下載依賴項,您可以在此處找到非AWS-SDK驅動程序:https://mvnrepository.com/artifact/com.amazon.redshift/redshift-jdbc42-no-awssdk
這篇關于java.lang.SecurityException AWSCredentialsProvider簽名者信息不匹配的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,