java.security.AccessControlException:访问被拒绝(" java.security.SecurityPermission"" authProvider.SunMSCAPI") [英] java.security.AccessControlException: access denied ("java.security.SecurityPermission" "authProvider.SunMSCAPI")
问题描述
早晨直到一切都在我的小应用程序工作正常。我把Java的更新,一切都停止了。我使用的小程序处理数字证书。这是我的堆栈跟踪。我跟一些预言文章,但没有奏效。
Till morning everything working fine in my applet. I took Java update and everything stopped. I'm dealing with digital certificate using applet. Here is my stack trace. I followed some oracle article but didn't work.
<一个href=\"https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45\">https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45
<一href=\"http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#trusted_library\">http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#trusted_library
<一href=\"http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html\">http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html
Java Plug-in 10.45.2.18
Using JRE version 1.7.0_45-b18 Java HotSpot(TM) Client VM
User home directory = C:\Users\vicky.thakor
java.security.AccessControlException: access denied ("java.security.SecurityPermission" "authProvider.SunMSCAPI")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source)
at sun.security.mscapi.KeyStore.engineLoad(KeyStore.java:755)
at sun.security.mscapi.KeyStore$MY.engineLoad(KeyStore.java:62)
at java.security.KeyStore.load(Unknown Source)
at SecurityApplet.initializeBrowserKeyStore(SecurityApplet.java:162)
at SecurityApplet.isCertificateInstalled(SecurityApplet.java:268)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.Trampoline.invoke(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
.java.policy中
文件我创建的公共无效的init()
小程序的方法。它的前小程序访问任何东西。
.java.policy
file I'm creating in public void init()
method of applet. Its before accessing anything in applet.
grant
{
permission java.security.AllPermission;
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "<<ALL FILES>>", "write";
permission java.util.PropertyPermission "*", "read, write";
permission java.util.PropertyPermission "user.home", "read";
permission java.util.PropertyPermission "user.dir", "read";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "*";
};
更新:2013年11月18日
Update: 18th Nov, 2013
它不工作,即使使用code签名证书
Its not working even if using code signing certificate
推荐答案
我不能评论又那么我把这个作为一个答案吧。
I cannot comment yet so am putting this as an answer instead.
-
我相信,建立在你的小程序中的.java.policy文件将是太晚了 - 该插件会已经开始启动并运行你的任何code的前阅读策略文件
I believe creating the .java.policy file in your applet will be too late - the plugin will have already started up and read the policy files before running any of your code.
您可以签上你的小应用程序,并使用JNLP文件分配在安全元素的权限
You could sign your applet and use a jnlp file to assign permissions in the security element
这篇关于java.security.AccessControlException:访问被拒绝(&QUOT; java.security.SecurityPermission&QUOT;&QUOT; authProvider.SunMSCAPI&QUOT;)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!