我正在使用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提到,如果它被签名,错误就会消失。但对我来说不是这样的。
发布于 2013-05-17 14:09:16
如果即使在对小程序进行签名之后,仍然获得SecurityException,请尝试以特权代码运行该代码:
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
// perform the security-sensitive operation here
return null;
}
});发布于 2013-05-16 22:37:42
这是权限问题,我认为这不是关于它是不是一个真正的证书(我不知道)。您的证书保存在C:\Program Files...中。确保您在该目录中具有read权限。Windows家长控制可能阻止您访问证书文件。
为了您自己的安全,有时Windows会阻止应用程序访问C:\Program Files\...文件夹,并且需要Administrator权限才能访问它们。也许,您必须为服务器中的JRE设置管理员权限,以管理员身份运行它。
发布于 2013-05-16 22:36:24
您是否对您申请的签名授予了权限?签名本身对Java的安全管理器没有任何意义。你还需要一个有效的证书来验证签名,并且它需要被系统“信任”……
https://stackoverflow.com/questions/16590269
复制相似问题