JavaTM 2 Platform
Standard Ed. 5.0

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()
          このプロバイダをクリアして、プロバイダが実装した機能を検索するときに使用するプロパティを含まないようにします。
 Set<Map.Entry<Object,Object>> entrySet()
          このプロバイダに含まれるプロパティエントリの変更不可能な Set のビューを返します。
 String getInfo()
          プロバイダとそのサービス内容を、人間が読める形式で返します。
 String getName()
          このプロバイダの名前を返します。
 Provider.Service getService(String type, String algorithm)
          指定されたタイプの指定されたアルゴリズムまたは別名に対するこの Provider の実装を記述したサービスを取得します。
 Set<Provider.Service> getServices()
          この Provider がサポートするすべてのサービスの変更不可能な Set を取得します。
 double getVersion()
          このプロバイダのバージョン番号を返します。
 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, getProperty, list, list, loadFromXML, propertyNames, save, setProperty, store, storeToXML, storeToXML
 
クラス java.util.Hashtable から継承されたメソッド
clone, contains, containsKey, containsValue, elements, equals, get, hashCode, isEmpty, keys, 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.InputStream)

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 の実装が使用される場合 (つまり、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

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