我的applet的定义权限存在问题,该权限会对get user.name属性或文件系统命令(如create,read,write directory或files ...)进行空间资源访问...
applet必须写入任何数据-ex。图像 - 从临时目录中的此类文件中的Web应用程序接收,并使用user.name为这些文件创建文件夹...
我想签署applet并为其授予权限,以便运行我的applet的每个客户端都允许它进行所需的资源访问,我该怎么办? 有可能吗?
是没有客户端授权许可的方法吗? 我知道这不是一个好的安全政策,也许是错误的想法,但我的问题陈述你的想法是什么? 我怎么能这样做?
答案 0 :(得分:1)
一旦您的applet被签名,任何需要文件权限的代码都需要包装在特权块中,如下所示。
final String location = locationVal;
File f = (File) AccessController.doPrivileged(new PrivilegedAction()
{
public Object run()
{
System.out.println("Getting File : " + location);
File outputFile1 = new File(location);
return outputFile1;
}
});
要获取系统属性,您需要再次使用特权块。像这样的东西。
String javaVersion = (String) AccessController.doPrivileged(new PrivilegedAction()
{
public Object run()
{
try
{
return System.getProperty("java.version");
}
catch (Exception e)
{
System.out.println("Exception caught:" + e.toString());
return null;
}
}
});
答案 1 :(得分:0)
从6u10开始,未经签名,您可以使用FileSaveService来允许在用户的控制下保存文件。