JavaTM 2
Platform
Std. Ed. v1.4.0

javax.security.auth.kerberos
クラス ServicePermission

java.lang.Object
  |
  +--java.security.Permission
        |
        +--javax.security.auth.kerberos.ServicePermission
すべての実装インタフェース:
Guard, Serializable

public final class ServicePermission
extends Permission
implements Serializable

このクラスは、Kerberos サービスと、Kerberos サービスからアクセスする必要のある資格を保護するために使用します。サービス主体とサービスにアクセスするのに必要な資格との一対一のマッピングがあります。そのため、サービス主体へアクセスを許可すると、サービス主体でセキュリティコンテキストを確立するために必要な資格へのアクセスを暗黙的に許可することになります。このことは、資格がキャッシュにあるか KDC と交換することで得られるかに関係なく当てはまります。資格は、チケットを付与するチケット、サービスチケット、または鍵テーブルからの秘密鍵、のどれかになります。

ServicePermission には、サービス主体名と、資格が使用されるコンテキストを指定するアクションのリストが含まれます。

サービス主体名は、サービスを提供する KerberosPrincipal の標準的な名前です。つまり、KerberosPrincipal は、Kerberos サービス主体を表します。この名前は、大文字・小文字を区別して扱われます。

このアクセス権を付与するということは、アクションで指示されたコンテキスト内にキャッシュされた資格 (TGT、サービスチケット、または秘密鍵) を呼び出し側が使用できるということを意味します。TGT の場合は、このアクセス権を付与するということは、Authentication Service 交換で TGT を得ることができることも意味します。

以下のアクションを選択できます。

    initiate -              呼び出し側が、サービス主体によって
                            セキュリティコンテキストを初期化するために、
                            資格を使用できる
    accept -                呼び出し側が、特定の主体として
                            セキュリティコンテキストを受け入れるために
                            資格を使用できる
たとえば、セキュリティコンテキストを初期化するために TGT にアクセスする権限を指定するには、アクセス権を次のように構成します。

     ServicePermission("krbtgt/EXAMPLE.COM@EXAMPLE.COM", "initiate");
 

コンテキストを "host" サービスで初期化するためにサービスチケットを取得するには、アクセス権は次のように構成します。

     ServicePermission("host/foo.example.com@EXAMPLE.COM", "initiate");
 

Kerberos を使用するように構成したサーバでは、アクションは accept になります。たとえば、Kerberos を使用するように構成した "host" サービス (telnet など) の秘密鍵にアクセスして使用するために必要なアクセス権は、次のように構成されます。

     ServicePermission("host/foo.example.com@EXAMPLE.COM", "accept");
 

導入されたバージョン:
JDK1.4
関連項目:
直列化された形式

コンストラクタの概要
ServicePermission(String servicePrinicipal, String action)
          指定された servicePrincipal および action で新しい ServicePermission を作成します。
 
メソッドの概要
 boolean equals(Object obj)
          2 つの ServicePermission オブジェクトが等しいかどうかを判定します。
 String getActions()
          アクションの正式な文字列表現を返します。
 int hashCode()
          このオブジェクトのハッシュコード値を返します。
 boolean implies(Permission p)
          指定されたアクセス権が、この Kerberos サービスアクセス権オブジェクトに含まれているかどうかを判定します。
 PermissionCollection newPermissionCollection()
          ServicePermission オブジェクトを格納するための新しい PermissionCollection オブジェクトを返します。
 
クラス java.security.Permission から継承したメソッド
checkGuard, getName, toString
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

ServicePermission

public ServicePermission(String servicePrinicipal,
                         String action)
指定された servicePrincipal および action で新しい ServicePermission を作成します。

パラメータ:
servicePrinicipal - サービス主体の名前

action - アクションの文字列
メソッドの詳細

implies

public boolean implies(Permission p)
指定されたアクセス権が、この Kerberos サービスアクセス権オブジェクトに含まれているかどうかを判定します。

以上が 1 つも true でない場合、implies は false を返します。

定義:
クラス Permission 内の implies
パラメータ:
p - チェック対象のアクセス権
戻り値:
指定されたアクセス権がこのオブジェクトに含まれる場合は true、そうでない場合は false

equals

public boolean equals(Object obj)
2 つの ServicePermission オブジェクトが等しいかどうかを判定します。

定義:
クラス Permission 内の equals
パラメータ:
obj - このオブジェクトと等しいかどうかが判定されるオブジェクト
戻り値:
obj が ServicePermissionで、この ServicePermission オブジェクトと同じサービス主体と同じアクションである場合は true

hashCode

public int hashCode()
このオブジェクトのハッシュコード値を返します。

定義:
クラス Permission 内の hashCode
戻り値:
このオブジェクトのハッシュコード値

getActions

public String getActions()
アクションの正式な文字列表現を返します。現在のアクションを、initiate、accept の順序で返します。

定義:
クラス Permission 内の getActions
戻り値:
Permission のアクション

newPermissionCollection

public PermissionCollection newPermissionCollection()
ServicePermission オブジェクトを格納するための新しい PermissionCollection オブジェクトを返します。
ServicePermission オブジェクトの格納形式は、同オブジェクトを任意の順番でコレクションに挿入でき、さらに、PermissionCollection の implies メソッドが効率的かつ矛盾のないように実装できる形式でなければなりません。

オーバーライド:
クラス Permission 内の newPermissionCollection
戻り値:
ServicePermissions を格納するのに適切な新しい PermissionCollection オブジェクト

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.