2009-09-12 43 views
0

我有我的小程序的定义权限的问题,将空间资源访问像获取用户名属性或文件系统命令,如创建,读取,写入目录或文件...如何为资源访问授予applet权限?

该小程序必须写入任何数据-EX。图像 - 从临时目录中使用user.name这样的文件中的Web应用程序接收到的文件夹...

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

它是一种没有客户端授权的方法吗? 我知道这不是很好的安全政策,也许是不正确的想法,但与我的问题陈述你的想法是什么? 我该怎么做?

回答

0

从6u10开始,如果没有签名,您可以使用FileSaveService来允许在用户的控制下保存文件。

+0

感谢,但小程序必须由本身,而无需用户控制保存数据...我的applet是一个地图浏览器,我想访问本地图像块,但是,它必须自动保存客户端磁盘上的图像 – sirvan 2009-09-13 08:11:53

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; 
    } 
} 
});