簡體   English   中英

在哪里放置java applet策略文件?

[英]Where to place java applet policy file?

我正在開發一個人工智能項目,這是一個邏輯游戲,目標是兩個用戶連接到網絡上充當管理員的服務器,然后逐個開始玩。

為了創建連接,我有一個服務器代碼,它只是在localhost:8000上監聽,並在客戶端到達時為其分配團隊值。 連接后,客戶端可以在Admin的控制下進行移動。

問題是,當我嘗試將我的代碼放在瀏覽器中工作時,它失敗並出現以下錯誤:

java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8000 connect,resolve)

即使我已經創建了自己的策略,首先只授予對我的項目文件夾的代碼庫( file:///home/xxx/projects/- )的Socket訪問權限,在它不起作用之后,我授予 所有代碼庫的所有權限。 我嘗試將我的策略文件放在主目錄和我的applet代碼所在的同一目錄中。

感謝任何提示,謝謝。

默認情況下,我認為它會在您的主目錄中查找名為.java.policy的文件

您可以檢查文件/lib/security/java.security以查看它的外觀。 檢查名為policy.url.n的密鑰

您可以使用此命令行選項設置安全策略文件的位置

-Djava.security.policy=policyfilepath

java命令。

或者您甚至可以使用System.setProperty()過程設置此屬性。

將策略文件放在JRE所在的位置。

例如,我的策略文件位於C:\\ Program Files \\ Java \\ jre1.6.0_01 \\ lib \\ security

我強烈建議尊重同源政策。 在最好的情況下,安全影響不一定是顯而易見的。 此外,具有標准權限的applet具有更好的可用性,並且應該更易於維護。

如果您授予特定JAR(代碼庫)的權限,則僅當從線程開始到方法調用的整個執行堆棧位於該代碼庫/保護域中時,此方法才有效。

如果您的方法是圖書館,並且您確定安全地訪問了該操作,則可以使用Priratedged Block,它基本上可以確保在訪問計算中不考慮調用塊的堆棧部分。

特權塊,如下所述:

http://docs.oracle.com/javase/6/docs/technotes/guides/security/doprivileged.html

問候貝恩德

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM