JavaTM Platform
Standard Ed. 6

javax.security.auth.kerberos
クラス ServicePermission

java.lang.Object
  上位を拡張 java.security.Permission
      上位を拡張 javax.security.auth.kerberos.ServicePermission
すべての実装されたインタフェース:
Serializable, Guard

public final class ServicePermission
extends Permission
implements Serializable

このクラスは、Kerberos サービスと、Kerberos サービスからアクセスする必要のある資格を保護するために使用します。サービス主体とサービスにアクセスするために必要な資格は 1 対 1 で対応します。そのため、サービス主体にアクセス権を付与すると、そのサービス主体とのセキュリティーコンテキストを確立するために必要な資格に対する暗黙的なアクセス権を付与することになります。これは、資格が、キャッシュ内にある場合にも、KDC との交換によって獲得される場合にも当てはまります。資格は、TGT、あるいは鍵テーブルから取得されるサービスチケットまたは秘密鍵のいずれかになります。  

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");
 

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

コンストラクタの概要
ServicePermission(String servicePrincipal, 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 servicePrincipal,
                         String action)
指定された servicePrincipal および action で新しい ServicePermission を作成します。

パラメータ:
servicePrincipal - サービス主体の名前。 単独のアスタリスクは任意のサービス主体を表す

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
関連項目:
Object.hashCode(), Hashtable

hashCode

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

定義:
クラス Permission 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

getActions

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

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

newPermissionCollection

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

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

JavaTM Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。