如何为其需要的资源访问授予applet权限?

时间:2009-09-12 17:33:57

标签: java security applet

我的applet的定义权限存在问题,该权限会对get user.name属性或文件系统命令(如create,read,write directory或files ...)进行空间资源访问...

applet必须写入任何数据-ex。图像 - 从临时目录中的此类文件中的Web应用程序接收,并使用user.name为这些文件创建文件夹...

我想签署applet并为其授予权限,以便运行我的applet的每个客户端都允许它进行所需的资源访问,我该怎么办? 有可能吗?

是没有客户端授权许可的方法吗? 我知道这不是一个好的安全政策,也许是错误的想法,但我的问题陈述你的想法是什么? 我怎么能这样做?

2 个答案:

答案 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来允许在用户的控制下保存文件。