创建策略文件

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
教程:创建策略文件

该课程将向您展示如何通过创建的策略文件来控制资源的访问。

步骤如下:

设置策略文件以授予所需的权限

策略文件是ASCII文本文件,可以通过文本编辑器或本节演示的图形化策略工具进行管理。策略工具可以节省输入,并消除策略文件的语法错误。

该课使用策略工具创建名为examplepolicy的策略文件,在该文件中,您将添加一个策略条目,该条目授予在examples目录中写入的权限。

遵守以下步骤来创建并修改策略文件:

1. 启动策略工具

为了启动策略工具,在命令行中键入如下命令:

policytool

这将打开策略工具窗口。

无论何时启动策略工具,它都会尝试用用户策略文件中的策略信息填充此窗口。用户策略文件名默认为当前工作空间主目录下的.java.policy。如果策略工具找不到用户策略文件,它会发出警告并显示一个空白的策略工具窗口(一个包含标题和按钮但没有数据的窗口),如下图所示。
在这里插入图片描述
接着您可以打开一个现有的策略文件,或者创建一个新的策略文件。

当第一次运行策略工具时,您将看到空白的策略工具窗口,因为用户策略文件还不存在。您可以立即创建一个新的策略文件,如下一步所述。

2. 授予所需的权限

要创建新条目,请单击主策略工具窗口中的 添加策略条目 按钮。这将显示策略条目对话框,如下图所示。
在这里插入图片描述
策略条目为来自特定代码源的代码指定一个或多个权限——代码源可以是来自特定位置(URL)的代码、也可以是由特定实体签名的代码,或者两者兼而有之。

CodeBaseSignedBy 文本框指定授予将添加到文件中的权限代码。

  • CodeBase 指明了代码源的位置;您将为该位置的代码授权。空的CodeBase表示“任何代码”——代码来自何处并不重要。
  • SignedBy 指示存储在密钥存储库中证书的别名。证书中的公钥用于验证代码的数字签名。您将对通过私钥签名的代码授权,该私钥是与证书别名所指定密钥库公钥相匹配的。SignedBy是可选的;省略它表示“任何签名者”——代码是否被签名或签名者是谁并不重要。

如果您同时配置CodeBaseSignedBy,那么该权限只授予来自指定位置并由指定别名签名的代码。

您可以从存储示例的位置(URL)向所有代码授予权限。

在策略输入对话框的CodeBase文本框中键入以下URL:

https://docs.oracle.com/javase/tutorial/security/tour1/examples/

注意:这是一个URL。因此,它必须始终使用斜杠作为分隔符,而不是反斜杠。

SignedBy文本框留空,因为您不需要对代码进行签名。


注意:如果不仅仅是为前面指定目录下的所有代码授权,而是针对security目录及其所有子目录下的代码授权,那么键入如下URL:

https://docs.oracle.com/javase/tutorial/security/

您已经指定了代码源(代码库),并且不必对代码进行签名(因为没有SignedBy值)。

您现在已经指定了这个策略条目,所以单击策略条目对话框中的 完成 按钮。策略工具窗口现在包含一条表示策略条目的行,显示 CodeBase 值。
在这里插入图片描述
注意:我们将在下一节中为这个新的策略条目授予权限。

3. 保存策略文件

要保存创建的新策略文件,请从“文件”菜单中选择“另存为”命令。这将显示 另存为 对话框。

控制应用程序快速教程的示例中,假设您将策略文件存储在C:驱动器上的Test目录中。

导航到Test目录。键入文件名examplepolicy并单击保存

策略文件现在被保存,其名称和路径显示在标记为Policy File的文本框中。
在这里插入图片描述
退出策略工具,从“文件”菜单中选择“退出”。

UNIX用户请注意:这些步骤假设在Windows系统中创建策略文件。在UNIX系统中其实是一样的步骤。课程中说要将策略文件存储在C:\Test目录中,您也可以将它存储在另一个目录中。在控制应用程序快速教程的示例中,假设您将它存储在~/test目录中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值