JavaTM Platform
Standard Ed. 6

java.security
クラス Provider

java.lang.Object
  上位を拡張 java.util.Dictionary<K,V>
      上位を拡張 java.util.Hashtable<Object,Object>
          上位を拡張 java.util.Properties
              上位を拡張 java.security.Provider
すべての実装されたインタフェース:
Serializable, Cloneable, Map<Object,Object>
直系の既知のサブクラス:
AuthProvider

public abstract class Provider
extends Properties

このクラスは、Java Security API の「プロバイダ」を表します。 プロバイダとは、Java セキュリティーの全体または一部を実装するものです。プロバイダが実装するのは次のようなサービスです。

 

各プロバイダには名前とバージョン番号があり、インストールされているランタイムクラスごとに設定されます。  

プロバイダの特定の型、暗号化サービスプロバイダの処理およびインストール方法については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の「Provider Class」を参照してください。その際、プロバイダが下層に適した実装を選択して、プラグイン可能なアーキテクチャーを使用していると、Java のどのセキュリティーサービスの実装にも使用できます。  

プロバイダ実装によっては、セキュリティートークンとの通信エラーなどの、処理中に復旧できない内部エラーが発生する可能性があります。そのようなエラーを通知するには ProviderException を使用してください。  

サービスタイプ Provider はセキュリティーフレームワーク用に予約されています。このタイプのサービスをアプリケーションから追加、削除、または変更することはできません。各 Provider オブジェクト内には次の属性が自動的に格納されます。

名前
Provider.id name String.valueOf(provider.getName())
Provider.id version String.valueOf(provider.getVersion())
Provider.id info String.valueOf(provider.getInfo())
Provider.id className provider.getClass().getName()

関連項目:
直列化された形式

入れ子のクラスの概要
static class Provider.Service
          特定のセキュリティーサービスを記述したものです。
 
フィールドの概要
 
クラス java.util.Properties から継承されたフィールド
defaults
 
コンストラクタの概要
protected Provider(String name, double version, String info)
          指定された名前、バージョン番号、および情報を使用してプロバイダを構築します。
 
メソッドの概要
 void clear()
          このプロバイダをクリアして、プロバイダが実装した機能を検索するときに使うプロパティーを含まないようにします。
 Enumeration<Object> elements()
          ハッシュテーブルにある値のリストを返します。
 Set<Map.Entry<Object,Object>> entrySet()
          このプロバイダに含まれるプロパティーエントリの変更不可能な Set のビューを返します。
 Object get(Object key)
          指定されたキーがマップされている値を返します。
 String getInfo()
          プロバイダとそのサービス内容を、人間が読める形式で返します。
 String getName()
          このプロバイダの名前を返します。
 String getProperty(String key)
          指定されたキーを持つプロパティーを、プロパティーリストから探します。
 Provider.Service getService(String type, String algorithm)
          指定されたタイプの指定されたアルゴリズムまたは別名に対するこの Provider の実装を記述したサービスを取得します。
 Set<Provider.Service> getServices()
          この Provider がサポートするすべてのサービスの変更不可能な Set を取得します。
 double getVersion()
          このプロバイダのバージョン番号を返します。
 Enumeration<Object> keys()
          ハッシュテーブルにあるキーのリストを返します。
 Set<Object> keySet()
          このプロバイダに含まれるプロパティーキーの変更不可能な Set のビューを返します。
 void load(InputStream inStream)
          入力ストリームからキーと要素が対になったプロパティーリストを読み込みます。
 Object put(Object key, Object value)
          key というプロパティーが、指定された value という値を持つように設定します。
 void putAll(Map<?,?> t)
          指定された Map からこのプロバイダへすべてのマッピングをコピーします。
protected  void putService(Provider.Service s)
          サービスを追加します。
 Object remove(Object key)
          key プロパティーとそれに対応する value を削除します。
protected  void removeService(Provider.Service s)
          以前に putService() を使用して追加されたサービスを削除します。
 String toString()
          このプロバイダの名前とバージョン番号を文字列で返します。
 Collection<Object> values()
          このプロバイダに含まれるプロパティー値の変更不可能な Collection のビューを返します。
 
クラス java.util.Properties から継承されたメソッド
getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNames
 
クラス java.util.Hashtable から継承されたメソッド
clone, contains, containsKey, containsValue, equals, hashCode, isEmpty, rehash, size
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

Provider

protected Provider(String name,
                   double version,
                   String info)
指定された名前、バージョン番号、および情報を使用してプロバイダを構築します。

パラメータ:
name - プロバイダの名前
version - プロバイダのバージョン番号
info - プロバイダとそのサービスの記述
メソッドの詳細

getName

public String getName()
このプロバイダの名前を返します。

戻り値:
このプロバイダの名前

getVersion

public double getVersion()
このプロバイダのバージョン番号を返します。

戻り値:
このプロバイダのバージョン番号

getInfo

public String getInfo()
プロバイダとそのサービス内容を、人間が読める形式で返します。関連するリンクを持つ HTML ページを返すこともあります。

戻り値:
プロバイダとそのサービスの記述

toString

public String toString()
このプロバイダの名前とバージョン番号を文字列で返します。

オーバーライド:
クラス Hashtable<Object,Object> 内の toString
戻り値:
このプロバイダの名前とバージョン番号の文字列

clear

public void clear()
このプロバイダをクリアして、プロバイダが実装した機能を検索するときに使うプロパティーを含まないようにします。  

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

定義:
インタフェース Map<Object,Object> 内の clear
オーバーライド:
クラス Hashtable<Object,Object> 内の clear
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの SecurityManager.checkSecurityAccess(java.lang.String) メソッドがこのプロバイダをクリアするアクセスを許可しない場合
導入されたバージョン:
1.2

load

public void load(InputStream inStream)
          throws IOException
入力ストリームからキーと要素が対になったプロパティーリストを読み込みます。

オーバーライド:
クラス Properties 内の load
パラメータ:
inStream - 入力ストリーム
例外:
IOException - 入力ストリームからの読み込み中にエラーが発生した場合
関連項目:
Properties.load(java.io.Reader)

putAll

public void putAll(Map<?,?> t)
指定された Map からこのプロバイダへすべてのマッピングをコピーします。これらのマッピングは、指定された Map 内に存在するすべてのキーに対応するプロパティーを、このプロバイダが持っているプロパティーと置き換えます。

定義:
インタフェース Map<Object,Object> 内の putAll
オーバーライド:
クラス Hashtable<Object,Object> 内の putAll
パラメータ:
t - マップに格納されるマッピング
導入されたバージョン:
1.2

entrySet

public Set<Map.Entry<Object,Object>> entrySet()
このプロバイダに含まれるプロパティーエントリの変更不可能な Set のビューを返します。

定義:
インタフェース Map<Object,Object> 内の entrySet
オーバーライド:
クラス Hashtable<Object,Object> 内の entrySet
戻り値:
マップ内に保持されているマッピングのセットビュー
導入されたバージョン:
1.2
関連項目:
Map.Entry

keySet

public Set<Object> keySet()
このプロバイダに含まれるプロパティーキーの変更不可能な Set のビューを返します。

定義:
インタフェース Map<Object,Object> 内の keySet
オーバーライド:
クラス Hashtable<Object,Object> 内の keySet
戻り値:
マップに含まれているキーのセットビュー
導入されたバージョン:
1.2

values

public Collection<Object> values()
このプロバイダに含まれるプロパティー値の変更不可能な Collection のビューを返します。

定義:
インタフェース Map<Object,Object> 内の values
オーバーライド:
クラス Hashtable<Object,Object> 内の values
戻り値:
マップ内に含まれている値のコレクションビュー
導入されたバージョン:
1.2

put

public Object put(Object key,
                  Object value)
key というプロパティーが、指定された value という値を持つように設定します。  

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

定義:
インタフェース Map<Object,Object> 内の put
オーバーライド:
クラス Hashtable<Object,Object> 内の put
パラメータ:
key - プロパティキー
value - プロパティーの値
戻り値:
指定されたプロパティー (key) にそれまで設定されていた値。値が設定されていなかった場合は null
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの SecurityManager.checkSecurityAccess(java.lang.String) メソッドがこのプロバイダのプロパティー値を設定するアクセス権を許可しない場合
導入されたバージョン:
1.2
関連項目:
Object.equals(Object), Hashtable.get(Object)

remove

public Object remove(Object key)
key プロパティーとそれに対応する value を削除します。  

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

定義:
インタフェース Map<Object,Object> 内の remove
オーバーライド:
クラス Hashtable<Object,Object> 内の remove
パラメータ:
key - 削除するプロパティーのキー
戻り値:
キーに割り当てられていた値。割り当てられていなかった場合は null
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの SecurityManager.checkSecurityAccess(java.lang.String) メソッドがこのプロバイダのプロパティー値を削除するアクセス権を許可しない場合
導入されたバージョン:
1.2

get

public Object get(Object key)
クラス Hashtable の記述:
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合は null を返します。  

つまり、このメソッドは、(key.equals(k)) となるキー k から値 v へのマッピングがこのマップに含まれている場合は v を返し、それ以外の場合は null を返します。このようなマッピングが 1 つだけあります。

定義:
インタフェース Map<Object,Object> 内の get
オーバーライド:
クラス Hashtable<Object,Object> 内の get
パラメータ:
key - 関連付けられた値が返されるキー
戻り値:
指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合は null
関連項目:
Hashtable.put(Object, Object)

keys

public Enumeration<Object> keys()
クラス Hashtable の記述:
ハッシュテーブルにあるキーのリストを返します。

オーバーライド:
クラス Hashtable<Object,Object> 内の keys
戻り値:
ハッシュテーブルにあるキーのリスト
関連項目:
Enumeration, Hashtable.elements(), Hashtable.keySet(), Map

elements

public Enumeration<Object> elements()
クラス Hashtable の記述:
ハッシュテーブルにある値のリストを返します。これらの要素を順次に取り出すには、Enumeration のメソッドを使用します。

オーバーライド:
クラス Hashtable<Object,Object> 内の elements
戻り値:
ハッシュテーブルにある値のリスト
関連項目:
Enumeration, Hashtable.keys(), Hashtable.values(), Map

getProperty

public String getProperty(String key)
クラス Properties の記述:
指定されたキーを持つプロパティーを、プロパティーリストから探します。そのキーがプロパティーリストにないと、デフォルトのプロパティーリスト、さらにそのデフォルト値が繰り返し調べられます。そのプロパティーが見つからない場合は、null が返されます。

オーバーライド:
クラス Properties 内の getProperty
パラメータ:
key - プロパティキー
戻り値:
指定されたキー値を持つこのプロパティリストの値
関連項目:
Properties.setProperty(java.lang.String, java.lang.String), Properties.defaults

getService

public Provider.Service getService(String type,
                                   String algorithm)
指定されたタイプの指定されたアルゴリズムまたは別名に対するこの Provider の実装を記述したサービスを取得します。そのような実装が存在しない場合、このメソッドは null を返します。条件に一致するサービスとして、putService() を使用してこのプロバイダに追加されたものと、put() 経由で追加されたものの 2 つが見つかった場合、putService() 経由で追加されたサービスが返されます。

パラメータ:
type - 要求されるサービスのタイプ (MessageDigest など)
algorithm - 要求されるサービスのアルゴリズム名または別名 (SHA-1 など)。大文字と小文字は区別される
戻り値:
この Provider の条件に一致するサービスを記述したサービス。 そのようなサービスが存在しない場合は null
例外:
NullPointerException - type、algorithm のいずれかが null である場合
導入されたバージョン:
1.5

getServices

public Set<Provider.Service> getServices()
この Provider がサポートするすべてのサービスの変更不可能な Set を取得します。

戻り値:
この Provider がサポートするすべてのサービスの変更不可能な Set
導入されたバージョン:
1.5

putService

protected void putService(Provider.Service s)
サービスを追加します。同じタイプとアルゴリズム名を持つサービスがすでに存在しており、それが putService() を使用して追加されていた場合、そのサービスは新しいサービスで置換されます。また、このメソッドは、プロバイダの Hashtable 値へのこのサービスに関する情報の設定も行います。 その際の形式については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」を参照してください。  

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

パラメータ:
s - 追加するサービス
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの SecurityManager.checkSecurityAccess(java.lang.String) メソッドがこのプロバイダのプロパティー値を設定するアクセス権を許可しない場合
NullPointerException - s が null である場合
導入されたバージョン:
1.5

removeService

protected void removeService(Provider.Service s)
以前に putService() を使用して追加されたサービスを削除します。指定されたサービスは、このプロバイダから削除され、getService() を呼び出しても返されなくなります。このプロバイダの Hashtable からその情報が削除されます。  

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

パラメータ:
s - 削除されるサービス
例外:
SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの SecurityManager.checkSecurityAccess(java.lang.String) メソッドがこのプロバイダのプロパティー値を削除するアクセス権を許可しない場合
NullPointerException - s が null である場合
導入されたバージョン:
1.5

JavaTM Platform
Standard Ed. 6

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

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