AccessControlException:拒绝访问 - FilePermission

时间:2013-05-16 14:32:24

标签: windows security applet java

我正在使用JRE7。我使用jarsigner签署了jar文件。但我仍然得到例外

java.security.AccessControlException: access denied ("java.io.FilePermission" 
    "C:\Program Files\Java\jre7\lib\ext\Cert.P12" "read") 

我正在尝试阅读存储在该目录中的Cert.P12。

我使用keytool生成证书并签署了jar。当浏览器提示我时,我接受了证书。是因为它不是真正的证书我收到这个错误吗?

这个读取文件的代码是一个applet代码。

http://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-applet.html提到如果签名,错误就会消失。但它不适合我。

3 个答案:

答案 0 :(得分:1)

这是权限问题,我认为它不是关于它是否或它不是真正的证书(我不知道)。您的证书保存在C:\Program Files...。确保您在该目录中拥有read权限。 Windows家长控制可能阻止您访问证书文件。

为了您自己的安全,有时Windows阻止应用程序访问C:\Program Files\...文件夹,并且需要Administrator权限才能访问它们。也许,您必须在服务器中为您的JRE设置管理员权限,以管理员身份运行它。

答案 1 :(得分:0)

您是否批准了您申请的签名?签名本身对Java的安全管理器没有任何意义。您还需要一个有效的证书来验证签名,它需要被系统“信任”......

答案 2 :(得分:0)

如果,即使在签署applet之后,仍然会收到SecurityException,请尝试将代码作为特权代码运行:

AccessController.doPrivileged(new PrivilegedAction() {
    public Object run() {
        // perform the security-sensitive operation here
        return null;
    }
});