0

我在我的 Web 应用程序中使用 browser-mob 代理来模拟代理服务器。执行 mvn clean 包后,当我执行 jar 时,出现以下错误:

Exception in thread "main" java.lang.SecurityException: no manifiest section for signature file entry org/bouncycastle/asn1/ocsp/ResponderID.class
at sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:399)
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:250)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:193)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:305)
at java.util.jar.JarVerifier.update(JarVerifier.java:216)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:341)
at java.util.jar.JarFile.getInputStream(JarFile.java:406)
at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:752)
at sun.misc.Resource.cachedInputStream(Resource.java:77)
at sun.misc.Resource.getByteBuffer(Resource.java:160)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:436)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:472)

Meta-Inf 文件夹没有任何我可以在构建 jar 时排除的签名证书。

4

3 回答 3

1

我记得在一些 bouncycastle 课程中遇到了类似的问题。

我的问题是由一个“ueber-jar”(在我的例子中是 apache-ds-all)引起的,它不仅包含来自 apache-ds 项目的类,还包含来自 apache-ds 3rd Party 依赖项的所有类。

由于 bouncycastle 类最初是在一个签名的 jar 文件中提供的,所以当从不同位置加载的类时我得到了一个安全异常 - 这是首先签署一个 JAR 的重点。

我建议扫描类路径中的所有 JAR 文件,以查看 org/bouncycastle/asn1/ocsp/ResponderID.class 是否包含在非 bouncycastle 分发 jar 文件中。

希望有帮助!

于 2012-09-06T20:58:05.783 回答
1

我在 ic4u 包中遇到了安全问题。我只是将它排除在依赖关系之外,一切正常。

<dependency>
  <groupId>biz.neustar</groupId>
  <artifactId>browsermob-proxy</artifactId>
  <version>${browser-mob-version}</version>
  <exclusions>
    <exclusion>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-api</artifactId>
    </exclusion>
    <exclusion>
      <artifactId>icu4j</artifactId>
      <groupId>com.ibm.icu</groupId>
    </exclusion>
  </exclusions>
</dependency>
于 2012-09-10T11:16:02.907 回答
0

ResponderID我对 iText 4.2.0 和 bouncycastle 库(与其他类相关的安全异常)有完全相同的问题。

我最终删除了META-INFiText 附带的签名 jar 中的目录。这可能不是最优雅的方式,但至少它为我解决了问题。

于 2013-03-19T18:24:43.240 回答