java.security.AccessControlException:拒绝访问(java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11)

时间:2014-05-28 16:48:53

标签: java eclipse applet runtime-error

我正在尝试在服务器网页中启动我的java applet(版本java 6),但是当我运行它时,我有下一个错误:

    java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
    at sun.plugin2.applet.Applet2SecurityManager.checkPackageAccess(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at es.inteco.applet.AppletFirmaDNIe.init(AppletFirmaDNIe.java:168)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Excepción: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11)
Ignored exception: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11)

使用eclipse,这个Applet运行正常,但是当我在服务器中尝试它时,它不起作用。 我正在使用未签名的小程序(.jar)。可以这样,ploblem ??

在我的java .policy文件中,我添加了这些行但仍无法正常工作

grant {
permission java.security.AllPermission;
permission java.security.AccessControlException;
permission java.lang.RuntimePermission;
permission java.lang.RuntimePermission "accessClassInPackage.sun.security.pkcs11";
};

与这些原始.policy文件相同的错误:

grant {
permission java.security.AllPermission;
};

有人知道问题和解决方案吗?

提前致谢

3 个答案:

答案 0 :(得分:1)

您需要对applet进行签名,最新的java安全基准将阻止使用不受信任的证书颁发机构签名的任何applet。

如果您选择对applet进行自签名,则可能需要降低Java安全设置以便小程序执行。

答案 1 :(得分:0)

Oracle最近的Java发行版(自大约去年夏天以来)禁止访问以“sun”开头的任何包中的任何内容。

使用 policytool 添加:

可以克服这个问题

权限java.lang.RuntimePermission accessClassInPackage.sun。

到您的本地java.policy文件。

答案 2 :(得分:0)

将其添加到您的java.policy文件或使用policytool

grant {
  permission java.lang.RuntimePermission accessClassInPackage.sun "com.acme.yourpackagename";
};