当前位置: 技术问答>java相关
我该如何写这个策略文件????高手帮忙,再线等待,立即送分!!!
来源: 互联网 发布时间:2015-08-07
本文导语: 我写了一个applet访问远程数据库的程序!通过odbc-jdbc桥的形式!我该如何写这个策略文件才能让用户有权限! | 要启动 Policy Tool,仅仅需要在命令行中键入以下命令。 policytool 这将调出“Policy Tool”窗口。无...
我写了一个applet访问远程数据库的程序!通过odbc-jdbc桥的形式!我该如何写这个策略文件才能让用户有权限!
|
要启动 Policy Tool,仅仅需要在命令行中键入以下命令。
policytool
这将调出“Policy Tool”窗口。无论何时启动 Policy Tool,Policy Tool 都将试图用来自有时称为“用户策略文件”的策略信息来填写本窗口。在缺省情况下,用户策略文件是宿主目录下名为 .java.policy 的文件。如果 Policy Tool 没能查找到用户策略文件,则它将报告该情况并且显示空白的“Policy Tool”窗口(即有标题和按钮但是其中没有数据的窗口)
然后,您可以继续打开您想要使用的任何策略文件或者创建新策略文件,方法是添加策略项(同时还可指定密钥仓库)和保存文件。第一次运行Policy Tool时,将不会有用户策略文件(除非已经手动创建了一个用户策略文件)。
创建新的策略文件
要创建新的策略文件,请选择 File 菜单中的 New 命令即可。该操作将关闭当前打开的策略文件(如果有,必要时会在关闭之前首先提示您保存该文件)并且调出新的Policy Tool窗口,即有标题和按钮但是其中没有数据的窗口。
指定密钥仓库
要为策略项的 SignedBy 部分中所指定的别名指定包含密钥信息的密钥仓库,请选择 Edit 菜单下的 Change Keystore 命令。
这将调出一个对话框,在对话框中可以指定新的密钥仓库 URL,也可指定密钥仓库类型。
例如,要在 D: Tests 目录中指定名为 "mykeystore" 的密钥仓库,须将下列 file: URL 键入标签为 "New KeyStore URL" 的文本框。
file:/D:/Tests/mykeystore
要将密钥仓库类型指定为“JKS”(Sun Microsystems 所支持的专用密钥仓库类型),请在标签为“New KeyStore Type”的文本框中键入以下内容。
JKS
注意:“New KeyStore URL”值是 URL,因此总是用斜杠(决不能用反斜杠)作为目录分隔符,即使密钥仓库实际上是在 Windows 系统上。
当完成指定密钥仓库 URL 和类型(如果有)时,请选择 OK(或者也可以选择 Cancel 来取消操作)。如果没有取消,则标签为“Keystore:” 的文本框中现在就填上了密钥仓库 URL 和类型。
添加新策略项
要添加新的策略项,请选择主“Policy Tool”窗口中的 Add Policy Entry 按钮。
这将调出“策略项”对话框:
利用该对话框,您可以指定
·可选的 CodeBase 项,指明代码所始发自的 URL 位置。例如,要指明代码是来自于 D: 驱动器上的本地 JavaSoftTESTS 目录,请将以下文件 URL 键入到标签为 CodeBase 的文本框中: file:/D:/JavaSoft/TESTS/
·可选的 SignedBy 项,指明来自密钥仓库的别名,作用是引用其私钥用于对代码进行签名的签名人。例如,要指明“kaven”别名,只需在标签为 SignedBy 的文本框中键入以下内容: kaven
·一个或多个权限项,指明将何种权限授予来自 CodeBase 和 SignedBy 值所指示的代码源的代码(或者如果没有指定这样的值,则指明将何种权限授予其它任何代码)。请参阅添加新权限。
SignedBy 值是字符串别名,它被映射到(使用密钥仓库)与签名人相关联的公钥集。这些密钥的作用是校验来自指定代码源的类是否确实由这些签名人签名。
SignedBy 值可以是逗号分隔的字符串,其中可以包含多个签名人的名字,例如 “Adam,Eve,Charles”,这意味着“由 Adam 和 Eve 以及 Charles 签名”(即,其关系是 AND,而不是 OR)。
SignedBy 值是可选的,这是因为:如果忽略该值,则表示“任何签名人”,换句话说,对代码是否进行签名无关紧要。同样,如果没有 CodeBase 项,则表示“任何代码”;代码始发自何处无关紧要。
因此,如果没有 CodeBase 项,则所有由指定别名签名的代码将被授予指定的权限。如果没有 SignedBy 项,则所有来自指定的 CodeBase 的代码都将被授予指定的权限,而不管代码是否已经被签名,以及由谁签名。如果没有 CodeBase 项,也没有 SignedBy 项,则所有代码将被授予指定的权限。
添加新权限
要添加新权限,请选择“Policy Entry”对话框中的 Add Permission 按钮。这将调出“Permissions”对话框:
添加权限:
键入或选择权限类型。
“Permission:”下拉列表中包含了内置权限类型的列表。如果您想要其中某种类型,则请从列表中选择,随后完整的权限类型名将出现在下拉列表右边的文本框中。
如果您想要指定由您本人或其他人所定义的权限类型,请在文本框中键入该权限类型。
入或选择权限目标名。
如果您从“Permission:”下拉列表中选择了一种内置权限,而且该类型的权限具有特定的目标名值,则“Target Name:”下拉列表将包含这些值的列表,您可以从中进行选择。
在某些情况下,目标名的可能取值范围极大但是某些内置目标名规范又具有特殊的含义,这样的目标名将出现在下拉列表中。例如,“”特殊目标名将出现在“File Permission”列表中。
要指定下拉列表中没有的目标名,请在“Target Name:”下拉列表右边的文本框中直接键入目标名。例如,要指定 D:JavaSoftptTest 目录中名为 data 的文件,请键入
D:JavaSoftptTestdata
3.键入或选择一个或多个动作(如果动作相关)。
某些权限只有目标名,但是没有动作。对于这样的权限,保持“Action:”下拉列表右边的文本框为空(对于该类型的内置权限,它将自动变灰,表示不可用)。
对于需要指定动作的权限,请在文本框中键入逗号分隔的动作列表,或者从下拉列表中选择动作。例如,要指定对“File Permission”指定的文件的读写访问权限,请首先从列表中选择 read (或 write,其先后顺序无关紧要)。单词“read”将出现在文本框中。然后选择 write,将附加上单词“write”,两单词之间用逗号和空格隔开。
如有必要,请在“Signed By”标签右边的文本框中键入 SignedBy 别名。权限项的 SignedBy 值是可选的。如果存在 SignedBy 值,则表明是已签名的权限。这就是说,为了授予权限,权限类自身必须由给定别名签名。
完成权限信息的指定后,请选择 OK 按钮(或 Cancel 按钮来取消操作)。新权限就出现在“Policy Entry”对话框的某行中。
然后,可以依照同样的步骤添加另外的权限。或者也可以编辑现有的权限或删除权限。
编辑权限
要编辑现有权限,请选择“Policy Entry”对话框中该权限所在的行,然后选择 Edit Permission 按钮。另外,也可以简单地双击该权限所在的行。
这将调出与添加新权限时所出现的对话框一样类型的“Permission”对话框,唯一的区别在于此处的对话框中已填写了现有权限信息。要更改该信息,请从下拉列表中重新进行选择或替换文本框中的信息。
完成操作之后,请选择 OK 按钮(或 Cancel 按钮以取消所作更改)。“Policy Entry”对话框将显示修改后的权限。
在完成添加策略项之后,请选择“Policy Entry”对话框中的 Done 按钮,或 Cancel 按钮以取消操作。
如果选择了 Done,则“Policy Tool”窗口中现在就包含了代表该策略项的行。该行只是包含 CodeBase 和 SignedBy 信息(如果有)。如果在“Policy Entry”对话框中没有指定 CodeBase 和 SignedBy ,则只是出现
CodeBase 。
编辑策略项
要编辑现有策略项,请在主“Policy Tool”窗口中选择该项所在的行,然后选择 Edit Policy Entry 按钮。另外,也可以简单地双击该项所在的行。
这将调出与添加新策略项时所出现的对话框一样类型的“Policy Entry”对话框,唯一的区别在于此处的对话框中已填写了现有策略项的信息。要更改该信息,只需重新键入信息(CodeBase 和 SignedBy 值)或添加、删除或修改权限。
完成之后,请选择 Done 按钮(或 Cancel 按钮以取消操作)。
policytool
这将调出“Policy Tool”窗口。无论何时启动 Policy Tool,Policy Tool 都将试图用来自有时称为“用户策略文件”的策略信息来填写本窗口。在缺省情况下,用户策略文件是宿主目录下名为 .java.policy 的文件。如果 Policy Tool 没能查找到用户策略文件,则它将报告该情况并且显示空白的“Policy Tool”窗口(即有标题和按钮但是其中没有数据的窗口)
然后,您可以继续打开您想要使用的任何策略文件或者创建新策略文件,方法是添加策略项(同时还可指定密钥仓库)和保存文件。第一次运行Policy Tool时,将不会有用户策略文件(除非已经手动创建了一个用户策略文件)。
创建新的策略文件
要创建新的策略文件,请选择 File 菜单中的 New 命令即可。该操作将关闭当前打开的策略文件(如果有,必要时会在关闭之前首先提示您保存该文件)并且调出新的Policy Tool窗口,即有标题和按钮但是其中没有数据的窗口。
指定密钥仓库
要为策略项的 SignedBy 部分中所指定的别名指定包含密钥信息的密钥仓库,请选择 Edit 菜单下的 Change Keystore 命令。
这将调出一个对话框,在对话框中可以指定新的密钥仓库 URL,也可指定密钥仓库类型。
例如,要在 D: Tests 目录中指定名为 "mykeystore" 的密钥仓库,须将下列 file: URL 键入标签为 "New KeyStore URL" 的文本框。
file:/D:/Tests/mykeystore
要将密钥仓库类型指定为“JKS”(Sun Microsystems 所支持的专用密钥仓库类型),请在标签为“New KeyStore Type”的文本框中键入以下内容。
JKS
注意:“New KeyStore URL”值是 URL,因此总是用斜杠(决不能用反斜杠)作为目录分隔符,即使密钥仓库实际上是在 Windows 系统上。
当完成指定密钥仓库 URL 和类型(如果有)时,请选择 OK(或者也可以选择 Cancel 来取消操作)。如果没有取消,则标签为“Keystore:” 的文本框中现在就填上了密钥仓库 URL 和类型。
添加新策略项
要添加新的策略项,请选择主“Policy Tool”窗口中的 Add Policy Entry 按钮。
这将调出“策略项”对话框:
利用该对话框,您可以指定
·可选的 CodeBase 项,指明代码所始发自的 URL 位置。例如,要指明代码是来自于 D: 驱动器上的本地 JavaSoftTESTS 目录,请将以下文件 URL 键入到标签为 CodeBase 的文本框中: file:/D:/JavaSoft/TESTS/
·可选的 SignedBy 项,指明来自密钥仓库的别名,作用是引用其私钥用于对代码进行签名的签名人。例如,要指明“kaven”别名,只需在标签为 SignedBy 的文本框中键入以下内容: kaven
·一个或多个权限项,指明将何种权限授予来自 CodeBase 和 SignedBy 值所指示的代码源的代码(或者如果没有指定这样的值,则指明将何种权限授予其它任何代码)。请参阅添加新权限。
SignedBy 值是字符串别名,它被映射到(使用密钥仓库)与签名人相关联的公钥集。这些密钥的作用是校验来自指定代码源的类是否确实由这些签名人签名。
SignedBy 值可以是逗号分隔的字符串,其中可以包含多个签名人的名字,例如 “Adam,Eve,Charles”,这意味着“由 Adam 和 Eve 以及 Charles 签名”(即,其关系是 AND,而不是 OR)。
SignedBy 值是可选的,这是因为:如果忽略该值,则表示“任何签名人”,换句话说,对代码是否进行签名无关紧要。同样,如果没有 CodeBase 项,则表示“任何代码”;代码始发自何处无关紧要。
因此,如果没有 CodeBase 项,则所有由指定别名签名的代码将被授予指定的权限。如果没有 SignedBy 项,则所有来自指定的 CodeBase 的代码都将被授予指定的权限,而不管代码是否已经被签名,以及由谁签名。如果没有 CodeBase 项,也没有 SignedBy 项,则所有代码将被授予指定的权限。
添加新权限
要添加新权限,请选择“Policy Entry”对话框中的 Add Permission 按钮。这将调出“Permissions”对话框:
添加权限:
键入或选择权限类型。
“Permission:”下拉列表中包含了内置权限类型的列表。如果您想要其中某种类型,则请从列表中选择,随后完整的权限类型名将出现在下拉列表右边的文本框中。
如果您想要指定由您本人或其他人所定义的权限类型,请在文本框中键入该权限类型。
入或选择权限目标名。
如果您从“Permission:”下拉列表中选择了一种内置权限,而且该类型的权限具有特定的目标名值,则“Target Name:”下拉列表将包含这些值的列表,您可以从中进行选择。
在某些情况下,目标名的可能取值范围极大但是某些内置目标名规范又具有特殊的含义,这样的目标名将出现在下拉列表中。例如,“”特殊目标名将出现在“File Permission”列表中。
要指定下拉列表中没有的目标名,请在“Target Name:”下拉列表右边的文本框中直接键入目标名。例如,要指定 D:JavaSoftptTest 目录中名为 data 的文件,请键入
D:JavaSoftptTestdata
3.键入或选择一个或多个动作(如果动作相关)。
某些权限只有目标名,但是没有动作。对于这样的权限,保持“Action:”下拉列表右边的文本框为空(对于该类型的内置权限,它将自动变灰,表示不可用)。
对于需要指定动作的权限,请在文本框中键入逗号分隔的动作列表,或者从下拉列表中选择动作。例如,要指定对“File Permission”指定的文件的读写访问权限,请首先从列表中选择 read (或 write,其先后顺序无关紧要)。单词“read”将出现在文本框中。然后选择 write,将附加上单词“write”,两单词之间用逗号和空格隔开。
如有必要,请在“Signed By”标签右边的文本框中键入 SignedBy 别名。权限项的 SignedBy 值是可选的。如果存在 SignedBy 值,则表明是已签名的权限。这就是说,为了授予权限,权限类自身必须由给定别名签名。
完成权限信息的指定后,请选择 OK 按钮(或 Cancel 按钮来取消操作)。新权限就出现在“Policy Entry”对话框的某行中。
然后,可以依照同样的步骤添加另外的权限。或者也可以编辑现有的权限或删除权限。
编辑权限
要编辑现有权限,请选择“Policy Entry”对话框中该权限所在的行,然后选择 Edit Permission 按钮。另外,也可以简单地双击该权限所在的行。
这将调出与添加新权限时所出现的对话框一样类型的“Permission”对话框,唯一的区别在于此处的对话框中已填写了现有权限信息。要更改该信息,请从下拉列表中重新进行选择或替换文本框中的信息。
完成操作之后,请选择 OK 按钮(或 Cancel 按钮以取消所作更改)。“Policy Entry”对话框将显示修改后的权限。
在完成添加策略项之后,请选择“Policy Entry”对话框中的 Done 按钮,或 Cancel 按钮以取消操作。
如果选择了 Done,则“Policy Tool”窗口中现在就包含了代表该策略项的行。该行只是包含 CodeBase 和 SignedBy 信息(如果有)。如果在“Policy Entry”对话框中没有指定 CodeBase 和 SignedBy ,则只是出现
CodeBase 。
编辑策略项
要编辑现有策略项,请在主“Policy Tool”窗口中选择该项所在的行,然后选择 Edit Policy Entry 按钮。另外,也可以简单地双击该项所在的行。
这将调出与添加新策略项时所出现的对话框一样类型的“Policy Entry”对话框,唯一的区别在于此处的对话框中已填写了现有策略项的信息。要更改该信息,只需重新键入信息(CodeBase 和 SignedBy 值)或添加、删除或修改权限。
完成之后,请选择 Done 按钮(或 Cancel 按钮以取消操作)。
|
资料在公司机子上,明天告诉你。
|
去www.chinajavaworld.com的论坛搜索一下applet