简体   繁体   English

org.bouncycastle.asn1.ASN1ObjectIdentifier“的签名者信息与签名者信息不匹配

[英]org.bouncycastle.asn1.ASN1ObjectIdentifier"'s signer information does not match signer information

I am facing above mentioned exception while I am calling PdfEncryptor.encrypt() from my code base. 我在从代码库中调用PdfEncryptor.encrypt()PdfEncryptor.encrypt()上述异常。 In SO I found that usually it happens because of wrong combination of itextpdf and bouncycastle jar. 在SO中,我发现通常是由于itextpdf和bouncycastle jar的错误组合而发生的。 But I am having below mentioned dependencies and which is correct I think. 但是我有以下提到的依赖关系,我认为这是正确的。

   <dependency>
      <groupId>com.itextpdf</groupId>
      <artifactId>itextpdf</artifactId>
      <version>5.1.3</version>
    </dependency>
    <dependency>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcprov-jdk16</artifactId>
      <version>1.46</version>
    </dependency> 
    <dependency>
      <groupId>com.test</groupId>
      <artifactId>test</artifactId>
      <version>1.0.0</version>
    </dependency> 

We are having dependency of itext indirectly through other project(test). 我们通过其他项目(测试)间接依赖于itext。 "test" project is having following entry “测试”项目具有以下条目

<dependency>
    <groupId>com.lowagie</groupId>
    <artifactId>itext</artifactId>
    <version>2.0.4</version>
</dependency>

Stacktrace : 堆栈跟踪 :

class "org.bouncycastle.asn1.ASN1ObjectIdentifier"'s signer information does not match signer information of other classes in the same package at java.lang.ClassLoader.checkCerts(ClassLoader.java:952) at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666) at java.lang.ClassLoader.defineClass(ClassLoader.java:794) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2494) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:860) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1302) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) at com.itextpdf.text.pdf.PdfEncryption.(PdfEncryption.java:147) at com.itextpdf.text.pdf.PdfWriter.setEncryption(PdfWriter.java:2041) at com.itextpdf.text.pdf.PdfStamper.setEncryption(PdfStamper.java:295) at com.itex 类“ org.bouncycastle.asn1.ASN1ObjectIdentifier”的签名者信息与java.lang.ClassLoader.checkCerts(ClassLoader.java:952)处的同一包中其他包的其他类的签名者信息不匹配。 org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase)上java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)上java.lang.ClassLoader.defineClass(ClassLoader.java:794)处的ClassLoader.java:666) .java:2494)位于org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:860)位于org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1302)位于org.apache.catalina。位于com.itextpdf.text.pdf.PdfEncryption。(PdfEncryption.java:147)处com.itextpdf.text.pdf.PdfWriter.setEncryption(PdfWriter.java:2041)处的loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) com.itext上的com.itextpdf.text.pdf.PdfStamper.setEncryption(PdfStamper.java:295) tpdf.text.pdf.PdfStamper.setEncryption(PdfStamper.java:330) at com.itextpdf.text.pdf.PdfEncryptor.encrypt(PdfEncryptor.java:206) tpdf.text.pdf.PdfStamper.setEncryption(PdfStamper.java:330)at com.itextpdf.text.pdf.PdfEncryptor.encrypt(PdfEncryptor.java:206)

Please let me know if you have any solution. 如果您有任何解决方案,请告诉我。 It will be very helpful 这将非常有帮助

You are mixing two iText versions: an obsolete version referring to my name ( com.lowagie ) dating from June 2007 and a newer version ( com.itextpdf ) dating from November 2011. These two different iText versions require different versions of BouncyCastle. 您要混合使用两个iText版本:一个过时的版本(引用我的名字( com.lowagie ),日期为2007年6月)和一个较新的版本( com.itextpdf ),日期为2011年11月。这两个不同的iText版本要求使用不同的BouncyCastle版本。 You should limit yourself to using one single version of iText (preferably one that dates from 2016) and use the corresponding BouncyCastle version. 您应该限制自己使用一个iText版本(最好是2016年发布的一个版本),并使用相应的BouncyCastle版本。 You will find the BouncyCastle version you need in the POM that is shipped with the iText version you're using. 您将在所使用的iText版本随附的POM中找到所需的BouncyCastle版本。 Note that you also have to be careful to check where you deploy your code. 请注意,您还必须注意检查代码的部署位置。 Some web servers ship with a version of BouncyCastle that is different from the version you need. 某些Web服务器附带的BouncyCastle版本与您所需的版本不同。 That can lead to inconsistencies. 这可能导致不一致。 Another example is Android. 另一个例子是Android。 Android ships with an old version of BouncyCastle and software that requires a newer version clash with that old version. Android随附了旧版本的BouncyCastle,并且软件要求新版本与该旧版本冲突。 That's why iTextG (the Android port of iText) uses SpongyCastle instead of BouncyCastle. 这就是为什么iTextG(iText的Android端口)使用SpongyCastle而不是BouncyCastle的原因。 SpongyCastle is identical to BouncyCastle, except for the package names. SpongyCastle与BouncyCastle相同,除了软件包名称之外。 This way SpongyCastle doesn't clash with the BouncyCastle version that is available on Android. 这样,SpongyCastle不会与Android上可用的BouncyCastle版本冲突。

Long story short: you say I am having below mentioned dependencies , but your assumption which is correct I think is wrong, because you're mixing two different versions of iText. 长话短说:您说我有以下提到的依赖项 ,但是您认为正确的假设是错误的,因为您要混合使用两个不同版本的iText。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 类“ org.bouncycastle.asn1.ASN1ObjectIdentifier”的签名者信息与同一包中其他类的签名者信息不匹配 - class “org.bouncycastle.asn1.ASN1ObjectIdentifier”'s signer information does not match signer information of other classes in the same package “class”org.bouncycastle.asn1.ASN1Primitive“的签名者信息与使用Itext的同一个包中的其他类的签名者信息不匹配 - 'class “org.bouncycastle.asn1.ASN1Primitive”'s signer information does not match signer information of other classes in the same package' using Itext 类“ org.bouncycastle.cms.CMSProcessable”的签名者信息与其他类的签名者信息不匹配 - class “org.bouncycastle.cms.CMSProcessable”'s signer information does not match signer information of other classes 签名者信息不匹配 - Signer information does not match java.lang.SecurityException:类“ org.eclipse.core.runtime.PlatformObject”的签名者信息与签名者信息不匹配 - java.lang.SecurityException: class “org.eclipse.core.runtime.PlatformObject”'s signer information does not match signer information org.apache.fop.apps.FOPException“的签名者信息与同一包中其他类的签名者信息不匹配 - org.apache.fop.apps.FOPException"'s signer information does not match signer information of other classes in the same package 签名者信息与同一个其他类的签名者信息不匹配 package - Signer information does not match signer information of other classes in the same package 类“ SynchronousHelper”的签名者信息与同一包中其他类的签名者信息不匹配 - class “SynchronousHelper”'s signer information does not match signer information of other classes in the same package JMockIt安全异常签名者信息不匹配 - JMockIt security exception signer information does not match Java SecurityException:签名者信息不匹配 - Java SecurityException: signer information does not match
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM