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