gpt4 book ai didi

java - 从 Java Webstart 启动嵌入式 Tomcat 时出现 AccessControlException

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:05 24 4
gpt4 key购买 nike

对于我们的 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...

最佳答案

@Witek:Tomcat 不会打开 SecurityManager:JVM 必须在启用 SecurityManager 和适当的策略文件的情况下启动。 Tomcat 在 SecurityManager 到位后很长时间内启动。

关于java - 从 Java Webstart 启动嵌入式 Tomcat 时出现 AccessControlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9831063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com