|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.security.Policy
Java アプリケーション環境のシステムセキュリティポリシー (各種ソースのコードで利用できるアクセス権はどれかを指定する) を表す抽象クラスです。つまり、セキュリティポリシーは、この Policy クラスで abstract メソッドの実装を提供する Policy サブクラスによって表現されます。
有効になる Policy オブジェクトは常に 1 つだけです。保護ドメインがそのアクセス権セットを初期化する時に ProtectionDomain によって参照されます。
Policy オブジェクトが使うポリシー情報のソース位置は、Policy の実装に依存します。ポリシーの設定は、たとえば、フラット ASCII ファイル、Policy クラスの直列化されたバイナリファイル、データベースなどとして格納できます。
現在インストールされている Policy オブジェクトは、getPolicy
メソッドを呼び出すことによって取得でき、setPolicy
メソッドの呼び出しによって (Policy をリセットするアクセス権付きのコードで) 変更できます。
refresh
メソッドにより、ポリシーオブジェクトの現在の設定がリフレッシュまたは再読み込みされます。この処理は実装に依存します。たとえば、ポリシーオブジェクトがそのポリシーを設定ファイルに格納する場合に refresh
を呼び出すと、ポリシー設定ファイルが再読み込みされます。
保護ドメインがそのアクセス権セットを初期化する必要があるときは、適切なアクセス権を PermissionCollection オブジェクトに収容するよう、現在インストールされている Policy オブジェクトに要求する次のようなコードを実行します。
policy = Policy.getPolicy(); PermissionCollection perms = policy.getPermissions(MyCodeSource)
保護ドメインは CodeSource オブジェクトを渡します。このオブジェクトは、そのコードベース (URL) と公開鍵属性をカプセル化します。Policy オブジェクトは、グローバルポリシーを評価し、指定コードソースのコードで許可されているアクセス権を指定する、適切な Permissions オブジェクトを返します。
デフォルトの Policy 実装は、(Java セキュリティプロパティファイルの) policy.provider セキュリティプロパティに、希望する Policy 実装クラスの完全指定名を設定することによって変更できます。Java セキュリティプロパティファイルは、<JAVA_HOME>/lib/security/java.security という名前のファイルに格納されています。ただし、<JAVA_HOME> は JDK がインストールされているディレクトリを示します。
CodeSource
,
PermissionCollection
コンストラクタの概要 | |
Policy()
|
メソッドの概要 | |
abstract PermissionCollection |
getPermissions(CodeSource codesource)
グローバルポリシーを評価し、指定されたコードソースのコードで許可されているアクセス権のセットを指定する PermissionCollection オブジェクトを返します。 |
static Policy |
getPolicy()
インストール済みの Policy オブジェクトを返します。 |
abstract void |
refresh()
ポリシー設定をリフレッシュまたは再読み込みします。 |
static void |
setPolicy(Policy policy)
システム全体の Policy オブジェクトを設定します。 |
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
コンストラクタの詳細 |
public Policy()
メソッドの詳細 |
public static Policy getPolicy()
setPolicy
への呼び出しによって変更が可能なので、キャッシュしてはいけません。このメソッドはまず SecurityPermission("getPolicy")
アクセス権を使って SecurityManager.checkPermission
を呼び出して、Policy オブジェクトを取得してもかまわないかどうかを確認します。checkPermission
が Policy オブジェクトの取得を許可しないときSecurityManager.checkPermission(java.security.Permission)
public static void setPolicy(Policy policy)
SecurityPermission("setPolicy")
アクセス権を使って SecurityManager.checkPermission
を呼び出して、Policy を設定してもかまわないかどうかを確認します。policy
- 新しいシステム Policy オブジェクトcheckPermission
が Policy の設定を許可しないときSecurityManager.checkPermission(java.security.Permission)
public abstract PermissionCollection getPermissions(CodeSource codesource)
codesource
- 呼び出し側に関連付けられている CodeSource。これは、コードの出所である元の位置と、その署名者の 1 つまたは複数の公開鍵をカプセル化するgetPermissions
を呼び出すアクセス権を持たない場合public abstract void refresh()
refresh
を呼び出すと、ファイルが再読み込みされます。
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |