2012-08-16 109 views
0

我有一個JApplet,我想給讀寫print等權限。 這個小程序只能從本地文件系統給一個JApplet讀寫訪問本地文件系統

我已經通過Java教程的控制小程序的部分閱讀加載並已成功創建了政策文件,給予權限和指定的代碼庫 http://docs.oracle.com/javase/tutorial/security/tour1/index.html

要得到示例applet成功寫入本地系統我必須將此行添加到java.security文件。 policy.url.3 = file:/ home/susanj/test/examplepolicy

問題是,如何通過代碼實現相同的結果?

我假設你開始與策略類 http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html#getInstance%28java.lang.String,%20java.security.Policy.Parameters%29

創建新的策略與任一getInstance方法

政策。 getInstance(String type,Policy.Parameters params)

策略。 getInstance(String type,Policy.Parameters params,Provider provider)

政策。 getInstance(String type,Policy.Parameters params,String provider)

並通過Policy添加它。 setPolicy(策略p)方法 然後使用 策略。 refresh();

不幸的是,它似乎與getInstance方法崩潰,事情開始變得非常混亂,我需要知道的是什麼類型,我需要使用策略參數作爲參數給我的小程序的完整權限。

此applet不從互聯網上下載,它是桌面應用程序的一部分,所以我可以在applet加載之前運行具有完全特權的class/jar文件。我假設你可以在applet加載之前以這種方式設置策略文件?

我假設這實際上是正確的方法。

問候

佈雷特

回答

1

這將是一個非常糟糕的主意,如果你能在沙箱中修改政策......這是什麼,它聽起來就像你正在試圖做的。

請仔細閱讀Set up a Policy File to Grant the Required Permission

您基本上需要更新Java默認實例中的策略文件,然後才能運行Applet。

或者您可以簽名。

+0

此applet是不是從互聯網上下載,它是一個桌面application.I可以在小程序加載之前加載類/ JAR文件的一部分。我假設你可以在applet加載之前設置策略文件? – BMac 2012-08-16 23:26:20

+0

不應該有很大的不同,Applet在受限安全模式下運行,這就是默認情況下的工作方式。您需要啓用它以「無保護」模式運行一些方式。最好的方法是更新默認的策略文件,或者爲應用程序提供一個不同的東西,例如'-Djava.security.policy = applet.policy' – MadProgrammer 2012-08-16 23:29:27

+0

eclipse IDE如何讓applet以完整的權限運行? – BMac 2012-08-16 23:32:18