我该如何写这个策略文件????高手帮忙,再线等待,立即送分!!! Java / J2SE / 基础类

来源:百度文库 编辑:神马文学网 时间:2024/04/30 08:36:58
我该如何写这个策略文件????高手帮忙,再线等待,立即送分!!!
zmrljl(javaone)2002-08-18 11:57:09 在 Java / J2SE / 基础类 提问
我写了一个applet访问远程数据库的程序!通过odbc-jdbc桥的形式!我该如何写这个策略文件才能让用户有权限!
问题点数:100、回复次数:5Top
zhenyang2002(珍阳)回复于 2002-08-18 12:14:08 得分 30
资料在公司机子上,明天告诉你。Top
zmrljl(javaone)回复于 2002-08-18 12:30:18 得分 0
麻烦您老人家了!Top
cno(一一)回复于 2002-08-18 21:57:40 得分 60
要启动   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:   驱动器上的本地  JavaSoft\TESTS\   目录,请将以下文件   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:\JavaSoft\ptTest\   目录中名为   data   的文件,请键入
D:\JavaSoft\ptTest\data
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   按钮以取消操作)。
Top
zhenyang2002(珍阳)回复于 2002-08-19 08:28:05 得分 0
http://www.yesky.com/20010919/197664_3.shtml
这是一个applet   访问文件的例子。访问数据库只是权限改为:
java.net.SocketPermission
我觉得楼上说的有点麻烦。不过也很好。我通过那个例子试验了访问文件和数据库都行。希望对你有帮助。有什么问题我们再讨论。Top
babyfu(你的亲亲宝贝)回复于 2002-08-19 08:42:01 得分 10
去www.chinajavaworld.com的论坛搜索一下applet