JavaTM 2
Platform
Std. Ed. v1.4.0

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 Set getAlgorithms(String serviceName)
          指定した Java 暗号化サービスで使用可能なアルゴリズムや型の名前 (Signature、MessageDigest、Cipher、Mac、KeyStore など) を含む String の Set を返します。
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) メソッドが指定されたセキュリティプロパティ値の取得を許可しないとき
関連項目:
setProperty(java.lang.String, java.lang.String), SecurityPermission

setProperty

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

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

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

getAlgorithms

public static Set getAlgorithms(String serviceName)
指定した Java 暗号化サービスで使用可能なアルゴリズムや型の名前 (Signature、MessageDigest、Cipher、Mac、KeyStore など) を含む String の Set を返します。指定したサービスでサポートされるプロバイダがない場合は、空の Set が返されます。Java 暗号化サービスの一覧については、Java Cryptography Architecture API Specification & Reference を参照してください。注: 返されるセットは不変です。

パラメータ:
serviceName - Java 暗号化サービスの名前 (Signature、MessageDigest、Cipher、Mac、KeyStore など)。注: このパラメータは大文字小文字を区別する
戻り値:
指定した Java 暗号化サービスで使用可能なアルゴリズムや型の名前を含む String の Set。指定したサービスでサポートされるプロバイダがない場合は、空のセットが返される
導入されたバージョン:
1.4

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.