JavaTM 2 Platform
Standard Ed. 5.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<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 エンジンクラス (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 のデフォルト実装が使用される場合 (つまり、このメソッドオーバーライドされていない場合)、このメソッドの呼び出しによって、セキュリティマネージャの 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 つずつ繰り下げられます。

このメソッドは、プロバイダがインストールされていない場合、あるいは 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 の場合
関連項目:
getProviders(java.util.Map)

getProviders

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

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

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

パラメータ:
filter - プロバイダの選択基準。フィルタは大文字と小文字を区別する
戻り値:
選択基準を満たすインストール済みのすべてのプロバイダ。このようなプロバイダがない場合は、null
例外:
InvalidParameterException - フィルタが必要な形式以外の場合
NullPointerException - filter が null の場合
関連項目:
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 2 Platform
Standard Ed. 5.0

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

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