我正在尝试在服务器网页中启动我的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;
};
有人知道问题和解决方案吗?
提前致谢
答案 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";
};