【发布时间】:2013-10-13 22:18:17
【问题描述】:
谁能帮帮我?
我想在我的应用程序中使用 osgi 安全性。因此,我编写了一个安全包,它授予所有由我的密钥库签名的包。我的一个包是一个战争文件(Bundle10)。如果我启动部署了war包的服务器(带有felix的glassfish),我会得到一个java.lang.SecurityException:
Exception while processing WEB-INF/classes/com/xy/SomeClass.class inside
file:/tmp/osgiapp430591893594363740/WEB-INF/lib/Bundle10.jar of size 2.111
java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:221)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:176)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:288)
at java.util.jar.JarVerifier.update(JarVerifier.java:199)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:327)
at java.util.jar.JarFile.getInputStream(JarFile.java:395)
at com.sun.enterprise.deployment.deploy.shared.InputJarArchive.getEntry(InputJarArchive.java:244)
at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:166)
at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:133)
at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:348)
at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:70)
at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:307)
at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:296)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
我使用 maven jasigner 插件对捆绑包进行了签名。
【问题讨论】:
-
我得到了 WEB-INF/classes/ 中每个类的异常,但是应用程序运行没有任何问题。
标签: security osgi war jarsigner