JavaTM 2 Platform
Std. Ed. v1.3

java.security
クラス Security

java.lang.Object
  |
  +--java.security.Security

public final class Security
extends Object

このクラスは、すべてのセキュリティプロパティ、および共通のセキュリティメソッドを集中管理します。その主な使用目的の 1 つにプロバイダの管理があります。


メソッドの概要
static int addProvider(Provider provider)
          プロバイダを可能な次の位置に追加します。
static String getAlgorithmProperty(String algName, String propName)
          推奨されていません。 このメソッドは、SUN 暗号化サービスプロバイダのマスターファイル内にある所有プロパティの値を返すために使用されます。これは、アルゴリズム固有のパラメータの構文解析方法を決定するための処理です。このメソッドの代わりに、新しいプロバイダを基本とするアルゴリズムに依存しない、AlgorithmParameters および KeyFactory エンジンクラス (Java 2 プラットフォームより導入) を使用してください。
static String getProperty(String key)
          セキュリティプロパティ値を取得します。
static Provider getProvider(String name)
          指定された名前でインストールされているプロバイダを返します。
static Provider[] getProviders()
          インストールされているすべてのプロバイダの配列を返します。
static Provider[] getProviders(Map filter)
          指定された選択基準を満たすすべてのインストールされたプロバイダを含む配列を返します。
static Provider[] getProviders(String filter)
          指定された選択基準を満たすすべてのインストールされたプロバイダを含む配列を返します。
static int insertProviderAt(Provider provider, int position)
          指定された位置に新規プロバイダを追加します。
static void removeProvider(String name)
          指定された名前のプロバイダを削除します。
static void setProperty(String key, String datum)
          セキュリティプロパティの値を設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getAlgorithmProperty

public static String getAlgorithmProperty(String algName,
                                          String propName)
推奨されていません。 このメソッドは、SUN 暗号化サービスプロバイダのマスターファイル内にある所有プロパティの値を返すために使用されます。これは、アルゴリズム固有のパラメータの構文解析方法を決定するための処理です。このメソッドの代わりに、新しいプロバイダを基本とするアルゴリズムに依存しない、AlgorithmParameters および KeyFactory エンジンクラス (Java 2 プラットフォームより導入) を使用してください。

アルゴリズムに対する指定されたプロパティを取得します。アルゴリズムの名前は標準名とする必要があります。アルゴリズム標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照してください。使途の 1 つに、専用のアルゴリズムパーサによる使用があります。このアルゴリズムパーサは、(Key パーサが行うのとほぼ同様に) それが認識するアルゴリズムにクラスマッピングします。
パラメータ:
algName - アルゴリズム名
propName - 取得するプロパティの名前
戻り値:
指定されたプロパティの値

insertProviderAt

public static int insertProviderAt(Provider provider,
                                   int position)
指定された位置に新規プロバイダを追加します。位置は優先順になっていて、要求されたアルゴリズムに対してプロバイダがその順序で検索されます。この優先順序は守られない場合があることに注意してください。位置は 1 から始まるため、1 が最優先になり、その次が 2、... と続きます。

指定されたプロバイダが要求された位置にインストールされる場合、その位置にあったプロバイダと position を超える位置にあるすべてのプロバイダは、(インストールされているプロバイダのリストの最後の方に向かって) 1 つずつ繰り上げられます。

プロバイダは、インストール済みの場合には追加できません。

セキュリティマネージャが存在する場合、最初にセキュリティマネージャの checkSecurityAccess メソッドが引数として "insertProvider."+provider.getName() という文字列を指定して呼び出され、新しいプロバイダを追加してもよいかどうかを確認します。デフォルトの checkSecurityAccess の実装が使用される場合 (つまり、checkSecurityAccess メソッドがオーバーライドされていない場合)、このメソッドの結果は、セキュリティマネージャの checkPermission メソッドが引数として SecurityPermission("insertProvider."+provider.getName()) アクセス権を指定して呼び出された場合と同じです。

パラメータ:
provider - 追加されるプロバイダ
position - 呼び出し側がこのプロバイダに要望する優先的な位置
戻り値:
プロバイダが追加された実際の優先位置。インストール済みで追加できない場合は -1
例外:
SecurityException - セキュリティマネージャが存在する場合に、セキュリティマネージャの SecurityManager.checkSecurityAccess(java.lang.String) メソッドが新しいプロバイダの追加を許可しないとき
関連項目:
getProvider(java.lang.String), removeProvider(java.lang.String), SecurityPermission

addProvider

public static int addProvider(Provider provider)
プロバイダを可能な次の位置に追加します。

セキュリティマネージャが存在する場合、最初にセキュリティマネージャの checkSecurityAccess メソッドが引数として "insertProvider."+provider.getName() という文字列を指定して呼び出され、新しいプロバイダを追加してもよいかどうかを確認します。デフォルトの checkSecurityAccess の実装が使用される場合 (つまり、checkSecurityAccess メソッドがオーバーライドされていない場合)、このメソッドの結果は、セキュリティマネージャの checkPermission メソッドが引数として SecurityPermission("insertProvider."+provider.getName()) アクセス権を指定して呼び出された場合と同じです。

パラメータ:
provider - 追加されるプロバイダ
戻り値:
プロバイダが追加された実際の優先位置。インストール済みで追加できない場合は -1
例外:
SecurityException - セキュリティマネージャが存在する場合に、セキュリティマネージャの SecurityManager.checkSecurityAccess(java.lang.String) メソッドが新しいプロバイダの追加を許可しないとき
関連項目:
getProvider(java.lang.String), removeProvider(java.lang.String), SecurityPermission

removeProvider

public static void removeProvider(String name)
指定された名前のプロバイダを削除します。

指定されたプロバイダが削除される場合、指定されたプロバイダがあった位置を超える位置にあるすべてのプロバイダは、(インストールされているプロバイダのリストの先頭の方に向かって) 1 つずつ繰り下げられます。

このメソッドは、プロバイダがインストールされていない場合は、何も行わずに復帰します。

セキュリティマネージャが存在する場合、最初にセキュリティマネージャの checkSecurityAccess メソッドが引数として "removeProvider."+name という文字列を指定して呼び出され、プロバイダを削除してもよいかどうかを確認します。デフォルトの checkSecurityAccess の実装が使用される場合 (つまり、checkSecurityAccess メソッドがオーバーライドされていない場合)、このメソッドの結果は、セキュリティマネージャの checkPermission メソッドが引数として SecurityPermission("removeProvider."+name) アクセス権を指定して呼び出された場合と同じです。

パラメータ:
name - 削除されるプロバイダの名前
例外:
SecurityException - セキュリティマネージャが存在する場合に、セキュリティマネージャの SecurityManager.checkSecurityAccess(java.lang.String) メソッドがプロバイダの削除を許可しないとき
関連項目:
getProvider(java.lang.String), addProvider(java.security.Provider)

getProviders

public static Provider[] getProviders()
インストールされているすべてのプロバイダの配列を返します。配列内でのプロバイダは優先順位の順になっています。
戻り値:
インストールされているすべてのプロバイダの配列

getProvider

public static Provider getProvider(String name)
指定された名前でインストールされているプロバイダを返します。指定された名前のプロバイダがインストールされていない場合は null を返します。
パラメータ:
name - 取得するプロパティの名前
戻り値:
指定された名前のプロバイダ
関連項目:
removeProvider(java.lang.String), addProvider(java.security.Provider)

getProviders

public static Provider[] getProviders(String filter)
指定された選択基準を満たすすべてのインストールされたプロバイダを含む配列を返します。このようなプロバイダが存在しない場合は、null。返されたプロバイダの順は「優先順」となります。

暗号化サービスは必ず特定のアルゴリズムまたは型に関連付けられています。デジタル署名サービスの場合は、常に DSA などの特定のアルゴリズムと関連付けられており、CertificateFactory サービスは常に X.509 などの特定の証明型と関連付けられています。

次の 2 種類のフォーマットのどちらかで選択基準を指定する必要があります。

暗号化サービスの標準名、アルゴリズムの標準名、属性の標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照

パラメータ:
filter - プロバイダの選択基準。フィルタは大文字と小文字を区別する
戻り値:
選択基準を満たすインストール済みのすべてのプロバイダ。このようなプロバイダがない場合は、null
例外:
InvalidParameterException - フィルタが必要な形式でない場合
関連項目:
getProviders(java.util.Map)

getProviders

public static Provider[] getProviders(Map filter)
指定された選択基準を満たすすべてのインストールされたプロバイダを含む配列を返します。このようなプロバイダが存在しない場合は、null。返されたプロバイダの順は「優先順」となります。

選択基準はマップで表現されます。各マップエントリは選択基準のことです。すべての選択基準をプロバイダが満たしている場合、プロバイダは選択されます。このマップでは、どのエントリの鍵も次の 2 種類の形式のどちらかになります。

暗号化サービスの標準名、アルゴリズムの標準名、属性の標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照

パラメータ:
filter - プロバイダの選択基準。フィルタは大文字と小文字を区別する
戻り値:
選択基準を満たすインストール済みのすべてのプロバイダ。このようなプロバイダがない場合は、null
例外:
InvalidParameterException - フィルタが必要な形式以外の場合
関連項目:
getProviders(java.lang.String)

getProperty

public static String getProperty(String key)
セキュリティプロパティ値を取得します。

セキュリティマネージャが存在する場合、セキュリティマネージャの checkPermission メソッドが java.security.SecurityPermission("getProperty."+key) アクセス権を引数として指定して呼び出され、指定されたセキュリティプロバティ値を取得してもよいかどうかを確認します。

パラメータ:
key - 取得するプロパティのキー
戻り値:
キーに対応するセキュリティプロパティの値
例外:
SecurityException - セキュリティマネージャが存在する場合に、セキュリティマネージャの SecurityManager.checkPermission(java.security.Permission) メソッドが指定されたセキュリティプロパティ値の取得を許可しないとき
関連項目:
SecurityPermission

setProperty

public static void setProperty(String key,
                               String datum)
セキュリティプロパティの値を設定します。

セキュリティマネージャが存在する場合、セキュリティマネージャの checkPermission メソッドが java.security.SecurityPermission("getProperty."+key) アクセス権を引数として指定して呼び出され、指定されたセキュリティプロバティ値を取得してもよいかどうかを確認します。

パラメータ:
key - 設定されるプロパティの名前
datum - 設定されるプロパティの値
例外:
SecurityException - セキュリティマネージャが存在する場合に、セキュリティマネージャの SecurityManager.checkPermission(java.security.Permission) メソッドが指定されたセキュリティプロパティ値の設定を許可しないとき
関連項目:
SecurityPermission

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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