【发布时间】:2012-03-28 10:45:17
【问题描述】:
我创建了一个 .jar 文件,其中包含我的类以及从多个 Apache Tomcat jar 中提取的类。然后我签署了 jar 并使用<security><all-permissions/> 创建了一个 JNLP 文件。
但是在运行我的应用程序时,WebStart 拒绝访问我的 jar 中的类:
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
这是 WebStart 中的错误还是为什么会出现此安全异常?
【问题讨论】:
-
Tomcat 添加到 package.access 安全属性中,这在 WebStart 中确实不适合做。
标签: java security java-web-start