Java 2 セキュリティーは、いくつかのポリシー・ファイルを使用 して、それぞれの Java プログラムごとに認可されたアクセス権を判別します。 Java 2 セキュリティー・ポリシーのフィルター操作は、Java 2 セキュリティーが使用可能になっている場合にのみ有効です。
システム・リソースおよび 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 アクセス権で、 アクセス権のパッケージ名が java または javax 以外の文字で始まるもの) が 含まれる場合は、ログに警告メッセージが記録され、アクセス権は除去されません。 「アプリケーションがカスタム許可を認可されたときに警告する」オプションの値は、「管理、アプリケーション、およびインフラストラクチャーの保護」パネルで変更できます。 エンタープライズ・アプリケーションに AllPermission アクセス権を使用することは、お勧めしません。
filter.policy ファイルには、いくつかのデフォルト・アクセス権が定義されます。 これらのアクセス権は、製品が推奨する最低限のアクセス権です。 それ以上のアクセス権を filter.policy ファイルに追加すると、エンタープライズ・アプリケーションで特定の操作が失敗することがあります。 filter.policy ファイルにアクセス権を追加する場合は、慎重に行ってください。
ポリシー・ツールを使用して filter.policy ファイルを編集することはできません。 編集はテキスト・エディターで行ってください。filter.policy ファイルに構文エラーがないように注意してください。 filter.policy ファイルに構文エラーがあると、製品のセキュリティー・ランタイムはこのファイルをロードせず、フィルター操作は無効になります。
filter.policy ファイルを抽出するには、ご使用の環境の情報を使用して、以下のコマンドを入力します。
set obj [$AdminConfig extract cells/cell_name/filter.policy /temp/test/filter.policy]
ポリシー・ファイルをチェックインするには、ご使用の環境の情報を使用して、以下のコマンドを入力します。
$AdminConfig checkin cells/cell_name/filter.policy /temp/test/filter.policy $obj
更新された filter.policy は、サーバーの再始動後に、WebSphere Application Server のすべてのエンタープライズ・アプリケーションに適用されます。 filter.policy ファイルは、構成およびファイル複製サービスによって管理されます。
このファイルに加えられた変更は、セル内の他のノードに複製されます。
WebSphere Application Server に用意されている filter.policy ファイルは、app_server_root/profiles/profile_name/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 スタンザだけです。
更新した filter.policy ファイルを有効にするには、それに関連した Java プロセスを再始動します。