访问Java WebStart中的类的权限

时间:2012-03-28 10:45:17

标签: java security java-web-start

我创建了一个.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中的错误还是为什么会出现此安全异常?

1 个答案:

答案 0 :(得分:1)

尝试通过调用以下方式清除安全管理器:

System.setSecurityManager(null);

我在Java Web Start应用程序中使用它来获得完全控制但是应用程序需要签名并具有

<security>
  <all-permissions/>
</security>

正如你所说的那样。