JavaTM Platform
Standard Ed. 6

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 エンジンクラス (J2SE 1.2 プラットフォームより導入) を使用してください。
static Set<String> 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<String,String> 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

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

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

パラメータ:
algName - アルゴリズム名
propName - 取得するプロパティーの名前
戻り値:
指定されたプロパティーの値

insertProviderAt

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

あるプロバイダが要求された場所にインストールされた場合は、それまでその場所にあったプロバイダ、および position よりあとの位置のすべてのプロバイダの順位は、1 つあとになり、インストールされたプロバイダ一覧の最後尾に向かって 1 つ移動します。

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

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

パラメータ:
provider - 追加されるプロバイダ
position - 呼び出し側がこのプロバイダに要望する優先順位
戻り値:
プロバイダが追加された実際の優先順位。インストール済みで追加できない場合は -1
例外:
NullPointerException - provider が null の場合
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 のデフォルト実装が使用される場合 (つまり、このメソッドオーバーライドされていない場合)、このメソッドの呼び出しによって、セキュリティーマネージャーの checkPermission メソッドが SecurityPermission("insertProvider."+provider.getName()) アクセス権を指定して呼び出されます。

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

removeProvider

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

指定されたプロバイダが削除されると、そのプロバイダよりもあとの位置にあるすべてのプロバイダの位置が 1 つ前になり、インストールされたプロバイダ一覧の先頭に向かって 1 つ移動します。

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

セキュリティーマネージャーが存在する場合、まずセキュリティーマネージャーの checkSecurityAccess メソッドが文字列 "removeProvider."+name を指定して呼び出され、プロバイダを削除してもよいかどうかが確認されます。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)
指定された名前でインストールされているプロバイダを返します。指定された名前のプロバイダがインストールされていない場合、あるいは name が null の場合は 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 - フィルタが必要な形式以外の場合
NullPointerException - filter が null の場合
導入されたバージョン:
1.3
関連項目:
getProviders(java.util.Map)

getProviders

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

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

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

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

getProperty

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

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

パラメータ:
key - 取得するプロパティーのキー
戻り値:
キーに対応するセキュリティープロパティーの値
例外:
SecurityException - セキュリティーマネージャーが存在する場合に、セキュリティーマネージャーの SecurityManager.checkPermission(java.security.Permission) メソッドが指定されたセキュリティープロパティー値の取得を許可しない場合
NullPointerException - key が null の場合
関連項目:
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) メソッドが指定されたセキュリティープロパティー値の設定を許可しない場合
NullPointerException - key または datum が null の場合
関連項目:
getProperty(java.lang.String), SecurityPermission

getAlgorithms

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

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

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 も参照してください。