我寫了一個applet訪問遠程數(shù)據(jù)庫的程序!通過odbc-jdbc橋的形式!我該如何寫這個策略文件才能讓用戶有權(quán)限!
要啟動 Policy Tool,僅僅需要在命令行中鍵入以下命令。 policytool
這將調(diào)出“Policy Tool”窗口。無論何時啟動 Policy Tool,Policy Tool
都將試圖用來自有時稱為“用戶策略文件”的策略信息來填寫本窗口。在缺省情況下,用戶策略文件是宿主目錄下名為 .java.policy
的文件。如果 Policy Tool 沒能查找到用戶策略文件,則它將報告該情況并且顯示空白的“Policy
Tool”窗口(即有標(biāo)題和按鈕但是其中沒有數(shù)據(jù)的窗口) 然后,您可以繼續(xù)打開您想要使用的任何策略文件或者創(chuàng)建新策略文件,方法是添加策略項(同時還可指定密鑰倉庫)和保存文件。第一次運行Policy Tool時,將不會有用戶策略文件(除非已經(jīng)手動創(chuàng)建了一個用戶策略文件)。 創(chuàng)建新的策略文件 要創(chuàng)建新的策略文件,請選擇 File 菜單中的 New 命令即可。該操作將關(guān)閉當(dāng)前打開的策略文件(如果有,必要時會在關(guān)閉之前首先提示您保存該文件)并且調(diào)出新的Policy Tool窗口,即有標(biāo)題和按鈕但是其中沒有數(shù)據(jù)的窗口。 指定密鑰倉庫 要為策略項的 SignedBy 部分中所指定的別名指定包含密鑰信息的密鑰倉庫,請選擇 Edit 菜單下的 Change Keystore 命令。 這將調(diào)出一個對話框,在對話框中可以指定新的密鑰倉庫 URL,也可指定密鑰倉庫類型。 例如,要在 D: \Tests 目錄中指定名為 "mykeystore" 的密鑰倉庫,須將下列 file: URL 鍵入標(biāo)簽為 "New KeyStore URL" 的文本框。 file:/D:/Tests/mykeystore 要將密鑰倉庫類型指定為“JKS”(Sun Microsystems 所支持的專用密鑰倉庫類型),請在標(biāo)簽為“New KeyStore Type”的文本框中鍵入以下內(nèi)容。 JKS 注意:“New KeyStore URL”值是 URL,因此總是用斜杠(決不能用反斜杠)作為目錄分隔符,即使密鑰倉庫實際上是在 Windows 系統(tǒng)上。 當(dāng)完成指定密鑰倉庫 URL 和類型(如果有)時,請選擇 OK(或者也可以選擇 Cancel 來取消操作)。如果沒有取消,則標(biāo)簽為“Keystore:” 的文本框中現(xiàn)在就填上了密鑰倉庫 URL 和類型。 添加新策略項 要添加新的策略項,請選擇主“Policy Tool”窗口中的 Add Policy Entry 按鈕。 這將調(diào)出“策略項”對話框: 利用該對話框,您可以指定
·可選的 CodeBase 項,指明代碼所始發(fā)自的 URL 位置。例如,要指明代碼是來自于 D: 驅(qū)動器上的本地
JavaSoft\TESTS\ 目錄,請將以下文件 URL 鍵入到標(biāo)簽為 CodeBase 的文本框中:
file:/D:/JavaSoft/TESTS/ ·可選的 SignedBy 項,指明來自密鑰倉庫的別名,作用是引用其私鑰用于對代碼進行簽名的簽名人。例如,要指明“kaven”別名,只需在標(biāo)簽為 SignedBy 的文本框中鍵入以下內(nèi)容: kaven ·一個或多個權(quán)限項,指明將何種權(quán)限授予來自 CodeBase 和 SignedBy 值所指示的代碼源的代碼(或者如果沒有指定這樣的值,則指明將何種權(quán)限授予其它任何代碼)。請參閱添加新權(quán)限。 SignedBy 值是字符串別名,它被映射到(使用密鑰倉庫)與簽名人相關(guān)聯(lián)的公鑰集。這些密鑰的作用是校驗來自指定代碼源的類是否確實由這些簽名人簽名。
SignedBy 值可以是逗號分隔的字符串,其中可以包含多個簽名人的名字,例如 “Adam,Eve,Charles”,這意味著“由
Adam 和 Eve 以及 Charles 簽名”(即,其關(guān)系是 AND,而不是 OR)。 SignedBy 值是可選的,這是因為:如果忽略該值,則表示“任何簽名人”,換句話說,對代碼是否進行簽名無關(guān)緊要。同樣,如果沒有 CodeBase 項,則表示“任何代碼”;代碼始發(fā)自何處無關(guān)緊要。
因此,如果沒有 CodeBase 項,則所有由指定別名簽名的代碼將被授予指定的權(quán)限。如果沒有 SignedBy
項,則所有來自指定的 CodeBase 的代碼都將被授予指定的權(quán)限,而不管代碼是否已經(jīng)被簽名,以及由誰簽名。如果沒有
CodeBase 項,也沒有 SignedBy 項,則所有代碼將被授予指定的權(quán)限。 添加新權(quán)限 要添加新權(quán)限,請選擇“Policy Entry”對話框中的 Add Permission 按鈕。這將調(diào)出“Permissions”對話框: 添加權(quán)限: 鍵入或選擇權(quán)限類型。 “Permission:”下拉列表中包含了內(nèi)置權(quán)限類型的列表。如果您想要其中某種類型,則請從列表中選擇,隨后完整的權(quán)限類型名將出現(xiàn)在下拉列表右邊的文本框中。 如果您想要指定由您本人或其他人所定義的權(quán)限類型,請在文本框中鍵入該權(quán)限類型。 入或選擇權(quán)限目標(biāo)名。 如果您從“Permission:”下拉列表中選擇了一種內(nèi)置權(quán)限,而且該類型的權(quán)限具有特定的目標(biāo)名值,則“Target Name:”下拉列表將包含這些值的列表,您可以從中進行選擇。 在某些情況下,目標(biāo)名的可能取值范圍極大但是某些內(nèi)置目標(biāo)名規(guī)范又具有特殊的含義,這樣的目標(biāo)名將出現(xiàn)在下拉列表中。例如,“<<All Files>>”特殊目標(biāo)名將出現(xiàn)在“File Permission”列表中。 要指定下拉列表中沒有的目標(biāo)名,請在“Target Name:”下拉列表右邊的文本框中直接鍵入目標(biāo)名。例如,要指定 D:\JavaSoft\ptTest\ 目錄中名為 data 的文件,請鍵入 D:\JavaSoft\ptTest\data 3.鍵入或選擇一個或多個動作(如果動作相關(guān))。 某些權(quán)限只有目標(biāo)名,但是沒有動作。對于這樣的權(quán)限,保持“Action:”下拉列表右邊的文本框為空(對于該類型的內(nèi)置權(quán)限,它將自動變灰,表示不可用)。
對于需要指定動作的權(quán)限,請在文本框中鍵入逗號分隔的動作列表,或者從下拉列表中選擇動作。例如,要指定對“File
Permission”指定的文件的讀寫訪問權(quán)限,請首先從列表中選擇 read (或
write,其先后順序無關(guān)緊要)。單詞“read”將出現(xiàn)在文本框中。然后選擇
write,將附加上單詞“write”,兩單詞之間用逗號和空格隔開。 如有必要,請在“Signed
By”標(biāo)簽右邊的文本框中鍵入 SignedBy 別名。權(quán)限項的 SignedBy 值是可選的。如果存在 SignedBy
值,則表明是已簽名的權(quán)限。這就是說,為了授予權(quán)限,權(quán)限類自身必須由給定別名簽名。 完成權(quán)限信息的指定后,請選擇 OK 按鈕(或 Cancel 按鈕來取消操作)。新權(quán)限就出現(xiàn)在“Policy Entry”對話框的某行中。 然后,可以依照同樣的步驟添加另外的權(quán)限。或者也可以編輯現(xiàn)有的權(quán)限或刪除權(quán)限。 編輯權(quán)限 要編輯現(xiàn)有權(quán)限,請選擇“Policy Entry”對話框中該權(quán)限所在的行,然后選擇 Edit Permission 按鈕。另外,也可以簡單地雙擊該權(quán)限所在的行。 這將調(diào)出與添加新權(quán)限時所出現(xiàn)的對話框一樣類型的“Permission”對話框,唯一的區(qū)別在于此處的對話框中已填寫了現(xiàn)有權(quán)限信息。要更改該信息,請從下拉列表中重新進行選擇或替換文本框中的信息。 完成操作之后,請選擇 OK 按鈕(或 Cancel 按鈕以取消所作更改)?!癙olicy Entry”對話框?qū)@示修改后的權(quán)限。 在完成添加策略項之后,請選擇“Policy Entry”對話框中的 Done 按鈕,或 Cancel 按鈕以取消操作。
如果選擇了 Done,則“Policy Tool”窗口中現(xiàn)在就包含了代表該策略項的行。該行只是包含 CodeBase 和
SignedBy 信息(如果有)。如果在“Policy Entry”對話框中沒有指定 CodeBase 和
SignedBy ,則只是出現(xiàn) CodeBase <ALL>。 編輯策略項 要編輯現(xiàn)有策略項,請在主“Policy Tool”窗口中選擇該項所在的行,然后選擇 Edit Policy Entry 按鈕。另外,也可以簡單地雙擊該項所在的行。
這將調(diào)出與添加新策略項時所出現(xiàn)的對話框一樣類型的“Policy
Entry”對話框,唯一的區(qū)別在于此處的對話框中已填寫了現(xiàn)有策略項的信息。要更改該信息,只需重新鍵入信息(CodeBase 和
SignedBy 值)或添加、刪除或修改權(quán)限。 完成之后,請選擇 Done 按鈕(或 Cancel 按鈕以取消操作)。
http://www.yesky.com/20010919/197664_3.shtml 這是一個applet 訪問文件的例子。訪問數(shù)據(jù)庫只是權(quán)限改為: java.net.SocketPermission 我覺得樓上說的有點麻煩。不過也很好。我通過那個例子試驗了訪問文件和數(shù)據(jù)庫都行。希望對你有幫助。有什么問題我們再討論
|