【发布时间】:2012-04-07 12:47:09
【问题描述】:
对于我们的Kunagi Java Web 应用程序,我们有一个签名的kunagi.jar 文件,其中包含我们的类以及来自嵌入式 Tomcat 6 的类。当调用 java -jar kunagi.jar 时,它可以完美运行。
但是当使用 Java WebStart 启动它时,当嵌入式 Tomcat 启动时出现异常:
java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.org.apache.catalina.deploy)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:393)
at java.security.AccessController.checkPermission(AccessController.java:553)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1529)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:291)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1018)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2444)
at java.lang.Class.getMethod0(Class.java:2687)
at java.lang.Class.getMethod(Class.java:1620)
at org.apache.catalina.startup.SetPublicIdRule.begin(WebRuleSet.java:639)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276)
... 33 more
当然kunagi.jar 已签名,否则它甚至不会启动。它接缝 Java WebStart 全局启用 Java 安全性,它以某种方式嵌入了 Tomcat“继承”并且无法初始化。
这是 JNLP 文件:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://kunagi.org/webstart" href="kunagi.jnlp">
<information>
<title>Kunagi</title>
<vendor>Kunagi Team</vendor>
<homepage href="http://kunagi.org"/>
<description>SCRUM Tool</description>
<description kind="short">SCRUM Tool</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="kunagi.jar" main="true" />
</resources>
<application-desc name="Kunagi" main-class="katokorbo.Katokorbo"/>
<update check="always"/>
</jnlp>
有没有办法在 Java WebStart 中禁用 Tomcat 的安全检查?或者如何配置嵌入式 Tomcat 以允许访问 org.apache.catalina...?
【问题讨论】:
标签: java security tomcat java-web-start