2009-09-12 79 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; 
    } 
} 
});