public final class Security extends Object
このクラスは、すべてのセキュリティ・プロパティ、および共通のセキュリティ・メソッドを集中管理します。その主な使用目的の1つにプロバイダの管理があります。
セキュリティ・プロパティのデフォルト値は実装固有の場所から読み取られます。この場所は、通常、Javaインストール・ディレクトリのlib/security/java.security
プロパティ・ファイルです。
修飾子と型 | メソッドと説明 |
---|---|
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)
指定された選択基準を満たすすべてのインストールされたプロバイダを含む配列を返します。このようなプロバイダが存在しない場合は、null。
|
static Provider[] |
getProviders(String filter)
指定された選択基準を満たすすべてのインストールされたプロバイダを含む配列を返します。このようなプロバイダが存在しない場合は、null。
|
static int |
insertProviderAt(Provider provider, int position)
指定された位置に新規プロバイダを追加します。
|
static void |
removeProvider(String name)
指定された名前のプロバイダを削除します。
|
static void |
setProperty(String key, String datum)
セキュリティ・プロパティの値を設定します。
|
@Deprecated public static String getAlgorithmProperty(String algName, String propName)
AlgorithmParameters
およびKeyFactory
エンジン・クラス(J2SEバージョン1.2プラットフォームより導入)を使用してください。algName
- アルゴリズム名。propName
- 取得するプロパティの名前。public static int insertProviderAt(Provider provider, int position)
あるプロバイダが要求された場所にインストールされた場合は、それまでその場所にあったプロバイダ、およびposition
よりあとの位置のすべてのプロバイダの順位は、1つあとになり、インストールされたプロバイダ一覧の最後尾に向かって1つ移動します。
プロバイダは、インストール済みの場合には追加できません。
セキュリティ・マネージャが存在する場合は、SecurityManager.checkSecurityAccess(java.lang.String)
メソッドがアクセス権ターゲット名"insertProvider"
を指定して呼び出され、新しいプロバイダを追加してもよいかどうかが確認されます。このアクセス権チェックが拒否された場合は、アクセス権ターゲット名"insertProvider."+provider.getName()
を指定してcheckSecurityAccess
が再度呼び出されます。両方のチェックが拒否された場合は、SecurityException
がスローされます。
provider
- 追加されるプロバイダ。position
- 呼出し側がこのプロバイダに要望する優先順位。NullPointerException
- providerがnullの場合SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドが新しいプロバイダを追加するアクセスを許可しない場合getProvider(java.lang.String)
, removeProvider(java.lang.String)
, SecurityPermission
public static int addProvider(Provider provider)
セキュリティ・マネージャが存在する場合は、SecurityManager.checkSecurityAccess(java.lang.String)
メソッドがアクセス権ターゲット名"insertProvider"
を指定して呼び出され、新しいプロバイダを追加してもよいかどうかが確認されます。このアクセス権チェックが拒否された場合は、アクセス権ターゲット名"insertProvider."+provider.getName()
を指定してcheckSecurityAccess
が再度呼び出されます。両方のチェックが拒否された場合は、SecurityException
がスローされます。
provider
- 追加されるプロバイダ。NullPointerException
- providerがnullの場合SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドが新しいプロバイダを追加するアクセスを許可しない場合getProvider(java.lang.String)
, removeProvider(java.lang.String)
, SecurityPermission
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)
public static Provider[] getProviders()
public static Provider getProvider(String name)
name
- 取得するプロパティの名前。removeProvider(java.lang.String)
, addProvider(java.security.Provider)
public static Provider[] getProviders(String filter)
暗号化サービスは、常に特定のアルゴリズムまたはタイプに関連付けられています。たとえば、デジタル署名サービスは常に特定のアルゴリズム(DSAなど)に、CertificateFactoryサービスは常に特定の証明書タイプ(X.509など)にそれぞれ関連付けられています。
次の2種類のフォーマットのどちらかで選択基準を指定する必要があります。
暗号化サービス名には、ドットを含まないようにします。
プロバイダが、指定暗号化サービス向けに指定されたアルゴリズムまたは型を実装していると、プロバイダは指定された選択基準を満たしています。
「CertificateFactory.X.509」の場合は、X.509証明書のCertificateFactoryの実装を提供しているプロバイダであれば、その選択基準を満たしています。
暗号化サービス名には、ドットを含まないようにします。<algorithm_or_type>と<attribute_name>の間にスペース文字が1つ以上必要です。
プロバイダが、指定暗号化サービス向けに指定されたアルゴリズムまたは型を実装していて、その実装が指定された属性名と値のペアで表記された制約を満たしている場合、プロバイダはこの選択基準を満たしています。
たとえば、1024以上のキー・サイズを持つSHA1withDSA署名アルゴリズムを実装しているどのプロバイダも、「Signature.SHA1withDSA KeySize:1024」を満たしています。
暗号化サービスの標準名、アルゴリズムの標準名、属性の標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントを参照してください。
filter
- プロバイダの選択基準。フィルタは大文字と小文字を区別する。InvalidParameterException
- フィルタが必要な形式以外の場合NullPointerException
- filterがnullの場合getProviders(java.util.Map)
public static Provider[] getProviders(Map<String,String> filter)
選択基準はマップで表現されます。各マップ・エントリは選択基準のことです。すべての選択基準をプロバイダが満たしている場合、プロバイダは選択されます。このマップでは、どのエントリの鍵も次の2種類の形式のどちらかになります。
暗号化サービス名には、ドットを含まないようにします。
鍵に関連した値は空の文字列である必要があります。
プロバイダが、指定暗号化サービス向けに指定されたアルゴリズムまたは型を実装していると、プロバイダはこの選択基準を満たしています。
暗号化サービス名には、ドットを含まないようにします。<algorithm_or_type>と<attribute_name>の間にスペース文字が1つ以上必要です。
鍵に関連した値は、空でない文字列になります。プロバイダが、指定暗号化サービス向けに指定されたアルゴリズムまたは型を実装していて、その実装が指定された属性名と値のペアで表記された制約を満たしている場合、プロバイダはこの選択基準を満たしています。
暗号化サービスの標準名、アルゴリズムの標準名、属性の標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントを参照してください。
filter
- プロバイダの選択基準。フィルタは大文字と小文字を区別する。InvalidParameterException
- フィルタが必要な形式以外の場合NullPointerException
- filterがnullの場合getProviders(java.lang.String)
public static String getProperty(String key)
セキュリティ・マネージャが存在する場合、セキュリティ・マネージャのcheckPermission
メソッドがjava.security.SecurityPermission("getProperty."+key)
アクセス権を引数として指定して呼び出され、指定されたセキュリティ・プロパティ値を取得してもよいかどうかを確認します。
key
- 取得するプロパティのキー。SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkPermission(java.security.Permission)
メソッドが指定されたセキュリティ・プロパティ値を取得するアクセスを許可しない場合NullPointerException
- キーがnullの場合setProperty(java.lang.String, java.lang.String)
, SecurityPermission
public static void setProperty(String key, String datum)
セキュリティ・マネージャが存在する場合、セキュリティ・マネージャのcheckPermission
メソッドがjava.security.SecurityPermission("setProperty."+key)
アクセス権を引数として指定して呼び出され、指定されたセキュリティ・プロパティ値を設定してもよいかどうかを確認します。
key
- 設定するプロパティの名前。datum
- 設定するプロパティの値。SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkPermission(java.security.Permission)
メソッドが指定されたセキュリティ・プロパティ値を設定するアクセスを許可しない場合NullPointerException
- keyまたはdatumがnullの場合getProperty(java.lang.String)
, SecurityPermission
public static Set<String> getAlgorithms(String serviceName)
serviceName
- Java暗号化サービスの名前(Signature、MessageDigest、Cipher、Mac、KeyStoreなど)。注: このパラメータは大文字と小文字を区別する。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.