2010-09-15 41 views
0

我有一個客戶端安全策略和一個授予權限的語句。我希望能夠指定它只爲RMI服務器授予一組權限。例如這個工程:爲Java安全策略指定遠程代碼庫

grant{  
    //my permissions  
}; 

但我無法弄清楚如何設定權限,使它們應用到我的服務器上的代碼庫鏈接。其實任何東西,只要它與服務器綁定就沒問題。我曾嘗試:

grant codeBase "file://hostname/-"{  
    //my permissions 
}; 

隨着主機名作爲名稱或計算機的IP,都與和W/O的端口號。但是這不起作用,使用http而不是文件。如果我理解我迄今爲止正確閱讀的內容,最後的連字符應該將權限應用於位於服務器上的任何內容。任何人都知道我需要做些什麼才能使其發揮作用?

謝謝。

繼承人運行服務器時所指定的代碼庫:

-Djava.rmi.server.codebase=file://home/me/PageServer/build/classes/ pageserver.LoginService pageserver.PlannerService 

回答

1

哪裏是本地JVM得到應授予權限的代碼?

如果從服務器上的HTTP代碼庫下載代碼,則可以使用以「http:」開頭的URL。

如果是本地代碼,則可以使用以「file:」開頭並以本地路徑結尾的URL。

聲明:我已經爲Jini編寫了安全文件,它建立在RMI之上,並且已經有幾年了。對我錯過的任何事情抱歉。

+0

它從遠程JVM獲取它。我試過http,但它不適合我。也許這跟路徑有關係?我不知道我的RMI服務器上的基本路徑在哪裏,它只是根文件路徑,還是默認啓動某處,比如/ var/www將用於apache。 – 2010-09-15 13:29:53

+0

是否在RMI服務器上定義了屬性java.rmi.server.codebase? – 2010-09-15 13:57:51

+0

它應該是,如果我正確地添加它就是。我剛剛更新了我的問題,以包括運行服務器jar時添加的交換機。乾杯。 – 2010-09-15 15:13:19

0

對代碼庫使用JAR,並在您在-Djava.rmi.server.codebase中指定的.policy文件中準確指定HTTP URL。