filter.policy 文件许可权

Java™ 2 安全性使用若干策略文件,为每个 Java 程序确定授予的许可权。Java 2 安全策略过滤仅在启用 Java 2 安全性时才生效。

在修改 filter.policy 文件之前,必须启动 wsadmin 工具。

请参阅保护系统资源和 API(Java 2 安全性)以开发应用程序filter.policy 文件中定义的过滤策略是单元范围的。当限制许可权而不是授予许可权时,filter.policy 文件是唯一使用的策略文件。过滤器策略文件中列出的许可权是从 app.policy 文件和 was.policy 文件中过滤出的。其他策略文件中定义的许可权不受 filter.policy 文件的影响。

当过滤出许可权时,记录审计消息。然而,如果 app.policy 文件和 was.policy 文件中定义的许可权是复合许可权(如 java.security.AllPermission 许可权),那么不会移除许可权。会记录一条警告消息。如果启用了“发出许可权警告”标志(缺省值),并且如果 app.policy 文件和 was.policy 文件包含定制许可权(非 Java API 许可权,以除 javajavax 之外的其他字符开始的许可权包名),那么会记录一条警告消息并且不移除许可权。可以更改“全局安全性”面板上对应用程序授予定制许可权时进行警告选项的值。建议不要对企业应用程序使用 AllPermission

filter.policy 文件中定义的某些缺省许可权。这些许可权是产品建议的最低限度的许可权。如果很多许可权添加到 filter.policy 文件,那么某些操作对于企业应用程序失败。小心地添加许可权到 filter.policy 文件。

您不能使用策略工具编辑 filter.policy 文件。编辑必须在文本编辑器中完成。请仔细验证 filter.policy 文件中没有语法错误。如果 filter.policy 文件中存在任何语法错误,那么产品安全性运行时不会装入该文件,这暗示禁用过滤。

要抽取 filter.policy 文件,请使用环境中的信息输入以下命令:

[AIX Solaris HP-UX Linux Windows]

set obj [$AdminConfig extract cells/cell_name/filter.policy c:/temp/test/filter.policy]

[IBM i][z/OS]

set obj [$AdminConfig extract cells/cell_name/filter.policy /temp/test/filter.policy]

要检入策略文件,请使用环境中的信息输入以下命令:

[AIX Solaris HP-UX Linux Windows]

[AIX Solaris HP-UX Linux Windows]$AdminConfig checkin cells/cell_name/filter.policy c:/temp/test/filter.policy $obj

[IBM i][z/OS]

$AdminConfig checkin cells/cell_name/filter.policy /temp/test/filter.policy $obj

服务器重新启动后,更新的 filter.policy 文件将应用于所有 WebSphere® Application Server 企业应用程序。filter.policy 文件由配置和文件复制服务管理。

对该文件的更改将复制到单元中的其他节点。

[AIX Solaris HP-UX Linux Windows][z/OS]WebSphere Application Server 所提供的 filter.policy 文件位于:app_server_root/profiles/profile_name/config/cells/cell_name/filter.policy

[IBM i]WebSphere Application Server 所提供的 filter.policy 文件位于:profile_root/config/cells/cell_name/filter.policy

缺省情况下,此文件包含以下许可权:

filterMask {
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "setSecurityManager";
permission java.security.SecurityPermission "setPolicy";
permission javax.security.auth.AuthPermission "setLoginConfiguration"; };
runtimeFilterMask {
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "setSecurityManager";
permission java.security.SecurityPermission "setPolicy";
permission javax.security.auth.AuthPermission "setLoginConfiguration"; };

filterMask 过滤器中定义的许可权用于静态策略过滤。应用程序启动期间,安全性运行时尝试从应用程序移除许可权。如果应用程序包含 filterMask 过滤器中定义的许可权,并且使用了脚本编制,那么不会移除复合许可权,但会发出警告,并停止应用程序部署。runtimeFilterMask 过滤器定义安全性运行时使用的许可权,以拒绝对应用程序线程的那些许可权的访问。不要添加很多许可权到 runtimeFilterMask 过滤器。可能导致应用程序启动失败或不正确地运行。当添加更多许可权到 runtimeFilterMask 过滤器时要小心。通常,您只需要添加许可权到 filterMask 节。

WebSphere Application Server 依赖过滤器策略文件,以限制或禁止可能会危及系统完整性的某些许可权。例如,WebSphere Application Server 考虑使用 exitVM 和 setSecurityManager 许可权作为大多数应用程序永远没有的那些许可权。如果授予这些许可权,那么下列方案是可能的:
exitVM
上述许可权使用的 servlet、JavaServer Pages (JSP) 文件、企业 bean 或其他库可能会调用 System.exit API,并导致整个 WebSphere Application Server 进程终止。
setSecurityManager
应用程序可安装其自己的安全管理器并授予更多许可权,或绕过 WebSphere Application Server 安全性管理器执行的缺省策略。
要点: 在应用程序代码中,不要使用 setSecurityManager 许可权来设置安全管理器。应用程序使用 setSecurityManager 许可权时,会与 WebSphere Application Server 内的内部安全管理器发生冲突。如果出于远程方法调用 (RMI) 目的,您必须在应用程序中设置安全管理器,那么还必须在 WebSphere Application Server 管理控制台内的“全局安全性”面板上选择“使用 Java 2 安全性来限制应用程序对本地资源的访问”选项。然后 WebSphere Application Server 注册安全管理器,应用程序代码可以通过使用 System.getSecurityManager 应用程序编程接口 (API) 来验证该安全管理器是否已注册。

要使更新后的 filter.policy 文件生效,请重新启动相关的 Java 进程。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_filterpolicy
文件名:rsec_filterpolicy.html