クラスProvider
- すべての実装されたインタフェース:
Serializable,Cloneable,Map<Object,Object>
- 直系の既知のサブクラス:
AuthProvider
- アルゴリズム(DSA、RSA、SHA-256など)。
- キーの生成、変換、および管理機能(アルゴリズム固有キーなど)
プロバイダ実装によっては、セキュリティ・トークンとの通信エラーなどの、処理中に復旧できない内部エラーが発生する可能性があります。 そのようなエラーを通知するにはProviderExceptionを使用してください。
プロバイダは、その下に収まる実装の選択肢を持つプラガブル・アーキテクチャを使用する任意のセキュリティ・サービスをJavaに実装するために使用できることに注意してください。
サービス・タイプProviderはセキュリティ・フレームワーク用に予約されています。 このタイプのサービスをアプリケーションから追加、削除、または変更することはできません。 各Providerオブジェクト内には次の属性が自動的に格納されます。
| 名 | 値 |
|---|---|
Provider.id name |
String.valueOf(provider.getName()) |
Provider.id version |
String.valueOf(provider.getVersionStr()) |
Provider.id info |
String.valueOf(provider.getInfo()) |
Provider.id className |
provider.getClass().getName() |
各プロバイダには、名前とバージョン文字列があります。 プロバイダは、通常、リソース・ディレクトリMETA-INF/services内のjava.security.Providerという名前のファイルで自身を識別します。 セキュリティ・プロバイダは、application class loaderを使用してServiceLoaderメカニズムを介して検索されます。
プロバイダは、自動的にインストールされ、実行時にSecurity.getProviders()メソッドを介して使用可能になるように構成できます。 セキュリティ・プロバイダを構成およびインストールするメカニズムは、実装に固有です。
- 実装上のノート:
- JDK実装では、Javaインストール・ディレクトリ内の
conf/security/java.securityファイルを使用して、セキュリティ・プロバイダの静的登録をサポートしています。 これらのプロバイダは、JDKランタイムによって自動的にインストールされます。特定のタイプのプロバイダ(暗号化サービス・プロバイダ)がどのように動作し、インストールされているかについては、「Java暗号化アーキテクチャ・リファレンス・ガイド(JCA)リファレンス・ガイド」の「プロバイダ・クラス」を参照してください。 - 導入されたバージョン:
- 1.1
- 関連項目:
-
ネストされたクラスのサマリー
ネストされたクラス -
フィールドのサマリー
クラスjava.util.Propertiesで宣言されたフィールド
defaults -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明voidclear()このProviderをクリアして、Providerによって実装された機能の検索に使用されるプロパティが含まれないようにします。指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。computeIfAbsent(Object key, Function<? super Object, ? extends Object> mappingFunction) 指定されたキーがまだ値に関連付けられていない(またはnullにマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction) 指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。指定された構成引数をこのProviderインスタンスに適用し、構成されたProviderを返します。entrySet()このProviderに含まれるプロパティ・エントリの変更不可能なSetビューを返します。voidforEach(BiConsumer<? super Object, ? super Object> action) このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。getInfo()Providerおよびそのサービスの人間が読める説明を返します。getName()このProviderの名前を返します。getOrDefault(Object key, Object defaultValue) 指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。getService(String type, String algorithm) 指定されたタイプの指定されたアルゴリズムまたは別名に対するこのProviderの実装を記述したサービスを取得します。このProviderでサポートされているすべてのサービスの変更不可能なセットを取得します。double非推奨。代わりにgetVersionStr()を使用してください。このProviderのバージョン文字列を返します。booleanこのProviderインスタンスが構成されているかどうかを確認します。keySet()このProviderに含まれるプロパティ・キーの変更不可のSetビューを返します。voidload(InputStream inStream) 入力ストリームからキーと要素が対になったプロパティ・リストを読み込みます。merge(Object key, Object value, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction) 指定されたキーがまだ値に関連付けられていないか、nullに関連付けられている場合は、指定された値に関連付けられます。keyプロパティが、指定されたvalueを持つように設定します。void指定したマップからこのProviderにすべてのマッピングをコピーします。putIfAbsent(Object key, Object value) 指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。protected voidサービスを追加します。keyプロパティとそれに対応するvalueを削除します。boolean指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。protected void以前にputService()を使用して追加されたサービスを削除します。指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。boolean指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。voidreplaceAll(BiFunction<? super Object, ? super Object, ? extends Object> function) すべてのエントリが処理されるか、または関数が例外をスローするまで、エントリ・セット・イテレータによってエントリが返される順に、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。toString()このProviderの名前とバージョン文字列を含む文字列を返します。values()このProviderに含まれるプロパティ値の変更不可の収集ビューを返します。クラスjava.util.Propertiesで宣言されたメソッド
getProperty, getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, storeToXML, stringPropertyNames
-
コンストラクタの詳細
-
Provider
@Deprecated(since="9") protected Provider(String name, double version, String info) 非推奨。代わりにProvider(String, String, String)を使用してください。指定された名前、バージョン番号および情報を使用してProviderを構築します。 このコンストラクタの呼出しは、name名、Double.toString(version)およびinfoを指定してProvider(String, String, String)をコールすることと同等です。- パラメータ:
name- プロバイダの名前。version- プロバイダのバージョン番号。info- プロバイダとそのサービスの記述。
-
Provider
指定された名前、バージョン文字列および情報でProviderを構築します。バージョン文字列には、オプションで、バージョン番号の後に「+」、「-」のいずれかの文字で区切られたその他の情報が含まれます。 バージョン番号の形式は次のとおりです:
^[0-9]+(\.[0-9]+)*バージョン番号をdoubleで返すために、3つ以上のコンポーネント(前述のように'.'で区切ります)がある場合、最初の2つのコンポーネントのみが保持されます。 結果の文字列が
Double.valueOf(String)に渡され、バージョン番号(getVersion())が生成されます。変換に失敗した場合は、値0が使用されます。
- パラメータ:
name- プロバイダの名前。versionStr- プロバイダのバージョン文字列。info- プロバイダとそのサービスの記述。- 導入されたバージョン:
- 9
-
-
メソッドの詳細
-
configure
指定された構成引数をこのProviderインスタンスに適用し、構成されたProviderを返します。 このProviderをインプレースで構成できない場合は、新しいProviderが作成されて返されます。 したがって、コール元は常に返されたProviderを使用する必要があります。- 実装要件:
- デフォルト実装は
UnsupportedOperationExceptionをスローします。 サブクラスは、構成引数がサポートされている場合にのみ、このメソッドをオーバーライドする必要があります。 - パラメータ:
configArg- このプロバイダを構成するための構成情報。- 戻り値:
- 指定された構成引数で構成された
Provider。 - スロー:
UnsupportedOperationException- 構成引数がサポートされていない場合。NullPointerException- 指定された構成引数がnullの場合。InvalidParameterException- 指定された構成引数が無効である場合。- 導入されたバージョン:
- 9
-
isConfigured
public boolean isConfigured()このProviderインスタンスが構成されているかどうかを確認します。- 実装要件:
- デフォルトの実装では
trueを返します。 サブクラスは、Providerが構築後に明示的なconfigureコールを必要とする場合、このメソッドをオーバーライドする必要があります。 - 戻り値:
- これ以上の構成が必要ない場合は
true、それ以外の場合はfalse。 - 導入されたバージョン:
- 9
-
getName
-
getVersion
@Deprecated(since="9") public double getVersion()非推奨。代わりにgetVersionStr()を使用してください。このProviderのバージョン番号を返します。- 戻り値:
- この
Providerのバージョン番号。
-
getVersionStr
-
getInfo
public String getInfo()Providerおよびそのサービスの人間が読める説明を返します。 関連するリンクを持つHTMLページを返すこともあります。- 戻り値:
Providerおよびそのサービスの説明。
-
toString
-
clear
-
load
public void load(InputStream inStream) throws IOException 入力ストリームからキーと要素が対になったプロパティ・リストを読み込みます。- オーバーライド:
load、クラスProperties- パラメータ:
inStream- 入力ストリーム。- スロー:
IOException- 入力ストリームからの読込み中にエラーが発生した場合。- 関連項目:
-
putAll
-
entrySet
-
keySet
-
values
-
put
-
putIfAbsent
指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。- パラメータ:
key- 指定された値が関連付けられるキーvalue- 指定されたキーに関連付けられる値- 戻り値:
- 指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合は
null。 (また、実装がnull値をサポートしている場合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す場合もある。) - 導入されたバージョン:
- 1.8
-
remove
-
remove
-
replace
-
replace
-
replaceAll
public void replaceAll(BiFunction<? super Object, ? super Object, ? extends Object> function) すべてのエントリが処理されるか、または関数が例外をスローするまで、エントリ・セット・イテレータによってエントリが返される順に、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。- パラメータ:
function- 各エントリに適用する関数- 導入されたバージョン:
- 1.8
-
compute
-
computeIfAbsent
public Object computeIfAbsent(Object key, Function<? super Object, ? extends Object> mappingFunction) 指定されたキーがまだ値に関連付けられていない(またはnullにマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。- 定義:
- インタフェース
Map<Object,内のObject> computeIfAbsent - オーバーライド:
- クラス
Hashtable<Object,のObject> computeIfAbsent - パラメータ:
key- 指定された値が関連付けられるキーmappingFunction- 値をコンピュートするマッピング関数- 戻り値:
- 指定されたキーに関連付けられている現在の(既存の、または計算された)値。計算された値がnullである場合はnull
- 導入されたバージョン:
- 1.8
-
computeIfPresent
public Object computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction) 指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。- 定義:
- インタフェース
Map<Object,内のObject> computeIfPresent - オーバーライド:
- クラス
Hashtable<Object,のObject> computeIfPresent - パラメータ:
key- 指定された値が関連付けられるキーremappingFunction- 値をコンピュートするための再マップ関数- 戻り値:
- 指定されたキーに関連付けられる新しい値。存在しない場合はnull
- 導入されたバージョン:
- 1.8
-
merge
public Object merge(Object key, Object value, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction) 指定されたキーがまだ値に関連付けられていないか、nullに関連付けられている場合は、指定された値に関連付けられます。 それ以外の場合は、指定した再マッピング関数の結果で値を置換するか、結果がnullの場合は削除します。 このメソッドは、1つのキーに対する複数のマップされた値を結合するときに使用できます。- 定義:
- インタフェース
Map<Object,内のObject> merge - オーバーライド:
- クラス
Hashtable<Object,のObject> merge - パラメータ:
key- 結果値が関連付けられるキーvalue- キーに関連付けられた既存の値にマージされるnull以外の値。既存の値がない場合、またはキーにnull値が関連付けられている場合は、キーに関連付けられるnull以外の値remappingFunction- 存在する場合に値を再計算するための再マッピング関数- 戻り値:
- 指定されたキーに関連付けられた新しい値。キーに値が関連付けられなかった場合はnull
- 導入されたバージョン:
- 1.8
-
getOrDefault
-
forEach
public void forEach(BiConsumer<? super Object, ? super Object> action) インタフェースからコピーされた説明:Mapこのマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。 実装クラスで指定されない場合は、エントリ・セットの反復の順序でアクションが実行されます(反復順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。- パラメータ:
action- 各エントリに対して実行されるアクション- 導入されたバージョン:
- 1.8
-
getService
public Provider.Service getService(String type, String algorithm) 指定されたタイプの指定されたアルゴリズムまたは別名に対するこのProviderの実装を記述したサービスを取得します。 このような実装が存在しない場合、このメソッドはnullを返します。 条件に一致するサービスとして、putService()を使用してこのプロバイダに追加されたものと、put()経由で追加されたものの2つが見つかった場合、putService()経由で追加されたサービスが返されます。- パラメータ:
type- 要求されるserviceのタイプ(MessageDigestなど)algorithm- リクエストされたサービスの大/小文字を区別しないアルゴリズム名(または代替別名) (たとえば、SHA-1)- 戻り値:
- このプロバイダの一致するサービスを記述するサービス、またはそのようなサービスが存在しない場合は
null - スロー:
NullPointerException- タイプまたはアルゴリズムがnullの場合- 導入されたバージョン:
- 1.5
-
getServices
public Set<Provider.Service> getServices()このProviderでサポートされているすべてのサービスの変更不可能なセットを取得します。- 戻り値:
- この
Providerでサポートされているすべてのサービスの変更不可能なセット - 導入されたバージョン:
- 1.5
-
putService
protected void putService(Provider.Service s) サービスを追加します。 同じアルゴリズム名の同じタイプのサービスが存在し、putService()を使用して追加された場合、新しいサービスで置き換えられます。 また、このメソッドは、このサービスに関する情報を、「Java暗号化アーキテクチャ(JCA)リファレンス・ガイド」で説明されている形式でプロバイダのハッシュ表の値に配置します。- パラメータ:
s- 追加するサービス- スロー:
NullPointerException- sがnullの場合- 導入されたバージョン:
- 1.5
-
removeService
protected void removeService(Provider.Service s) 以前にputService()を使用して追加されたサービスを削除します。 指定されたサービスは、このProviderから削除されます。 これはgetService()を呼び出しても返されなくなり、このプロバイダのHashtableからその情報が削除されます。- パラメータ:
s- 削除されるサービス- スロー:
NullPointerException- sがnullの場合- 導入されたバージョン:
- 1.5
-
Provider(String, String, String)を使用してください。