public abstract class Provider extends Properties
各プロバイダには名前とバージョン番号があり、インストールされているランタイム・クラスごとに構成されます。
プロバイダの特定の型、暗号化サービス・プロバイダの処理およびインストール方法については、「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
特定のセキュリティ・サービスを記述したものです。
|
defaults
修飾子 | コンストラクタと説明 |
---|---|
protected |
Provider(String name, double version, String info)
指定された名前、バージョン番号、および情報を使用してプロバイダを構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
clear()
このプロバイダをクリアして、プロバイダが実装した機能を検索するときに使うプロパティを含まないようにします。
|
Object |
compute(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合は
null )。 |
Object |
computeIfAbsent(Object key, Function<? super Object,? extends Object> mappingFunction)
指定されたキーがまだ値に関連付けられていない(または
null にマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、null でない場合はそれをこのマップに入力します。 |
Object |
computeIfPresent(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。
|
Enumeration<Object> |
elements()
ハッシュ表にある値のリストを返します。
|
Set<Map.Entry<Object,Object>> |
entrySet()
このプロバイダに含まれるプロパティ・エントリの変更不可能なSetのビューを返します。
|
void |
forEach(BiConsumer<? super Object,? super Object> action)
このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。
|
Object |
get(Object key)
指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合は
null を返します。 |
String |
getInfo()
プロバイダとそのサービス内容を、人間が読める形式で返します。
|
String |
getName()
このプロバイダの名前を返します。
|
Object |
getOrDefault(Object key, Object defaultValue)
指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合は
defaultValue を返します。 |
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 |
merge(Object key, Object value, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定された値に関連付けます。
|
Object |
put(Object key, Object value)
key プロパティが、指定されたvalue を持つように設定します。 |
void |
putAll(Map<?,?> t)
指定されたMapからこのプロバイダへすべてのマッピングをコピーします。
|
Object |
putIfAbsent(Object key, Object value)
指定されたキーがまだ値に関連付けられていない(または、
null にマップされている)場合は、それを指定された値に関連付けてnull を返します。それ以外の場合は、現在の値を返します。 |
protected void |
putService(Provider.Service s)
サービスを追加します。
|
Object |
remove(Object key)
key プロパティとそれに対応するvalue を削除します。 |
boolean |
remove(Object key, Object value)
指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。
|
protected void |
removeService(Provider.Service s)
以前に
putService() を使用して追加されたサービスを削除します。 |
Object |
replace(Object key, Object value)
指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
|
boolean |
replace(Object key, Object oldValue, Object newValue)
指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
|
void |
replaceAll(BiFunction<? super Object,? super Object,? extends Object> function)
すべてのエントリが処理されるか、または関数が例外をスローするまで、エントリ・セット・イテレータによってエントリが返される順に、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。
|
String |
toString()
このプロバイダの名前とバージョン番号を文字列で返します。
|
Collection<Object> |
values()
このプロバイダに含まれるプロパティ値の変更不可能なCollectionのビューを返します。
|
getProperty, list, list, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNames
clone, contains, containsKey, containsValue, equals, hashCode, isEmpty, rehash, size
public String getName()
public double getVersion()
public String getInfo()
public String toString()
public void clear()
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"clearProviderProperties."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダをクリアしてもよいかどうかが確認されます。
clear
、インタフェース: Map<Object,Object>
clear
、クラス: Hashtable<Object,Object>
SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがこのプロバイダをクリアするアクセスを許可しない場合public void load(InputStream inStream) throws IOException
load
、クラス: Properties
inStream
- 入力ストリーム。IOException
- 入力ストリームからの読込み中にエラーが発生した場合。Properties.load(java.io.Reader)
public void putAll(Map<?,?> t)
public Collection<Object> values()
public Object put(Object key, Object value)
key
プロパティが、指定されたvalue
を持つように設定します。
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。
put
、インタフェース: Map<Object,Object>
put
、クラス: Hashtable<Object,Object>
key
- ハッシュ表キーvalue
- 値null
SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値を設定するアクセスを許可しない場合。Object.equals(Object)
, Hashtable.get(Object)
public Object putIfAbsent(Object key, Object value)
null
にマップされている)場合は、それを指定された値に関連付けてnull
を返します。それ以外の場合は、現在の値を返します。
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。
putIfAbsent
、インタフェース: Map<Object,Object>
putIfAbsent
、クラス: Hashtable<Object,Object>
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられる値null
。(また、実装がnull値をサポートしている場合、戻り値null
は、以前にマップでキーとnull
が関連付けられていたことを示す場合もある。)SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値を設定するアクセスを許可しない場合。public Object remove(Object key)
key
プロパティとそれに対応するvalue
を削除します。
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"removeProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティを削除してもよいかどうかが確認されます。
remove
、インタフェース: Map<Object,Object>
remove
、クラス: Hashtable<Object,Object>
key
- 削除するキーnull
SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがこのプロバイダのプロパティを削除するアクセスを許可しない場合。public boolean remove(Object key, Object value)
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"removeProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティを削除してもよいかどうかが確認されます。
remove
、インタフェース: Map<Object,Object>
remove
、クラス: Hashtable<Object,Object>
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられていると予想される値true
SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがこのプロバイダのプロパティを削除するアクセスを許可しない場合。public boolean replace(Object key, Object oldValue, Object newValue)
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。
replace
、インタフェース: Map<Object,Object>
replace
、クラス: Hashtable<Object,Object>
key
- 指定された値が関連付けられるキーoldValue
- 指定されたキーに関連付けられていると予想される値newValue
- 指定されたキーに関連付けられる値true
SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値を設定するアクセスを許可しない場合。public Object replace(Object key, Object value)
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。
replace
、インタフェース: Map<Object,Object>
replace
、クラス: Hashtable<Object,Object>
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられる値null
。(また、実装がnull値をサポートしている場合、戻り値null
は、以前にマップでキーとnull
が関連付けられていたことを示す場合もある。)SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値を設定するアクセスを許可しない場合。public void replaceAll(BiFunction<? super Object,? super Object,? extends Object> function)
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値を設定してもよいかどうかが確認されます。
replaceAll
、インタフェース: Map<Object,Object>
replaceAll
、クラス: Hashtable<Object,Object>
function
- 各エントリに適用する関数SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値を設定するアクセスを許可しない場合。public Object compute(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
null
)。
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
および"removeProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値の設定とこのプロバイダのプロパティの削除を行ってもよいかどうかが確認されます。
compute
、インタフェース: Map<Object,Object>
compute
、クラス: Hashtable<Object,Object>
key
- 指定された値が関連付けられるキーremappingFunction
- 値を計算するための関数SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値の設定またはプロパティの削除を行うアクセスを許可しない場合。public Object computeIfAbsent(Object key, Function<? super Object,? extends Object> mappingFunction)
null
にマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、null
でない場合はそれをこのマップに入力します。
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
および"removeProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値の設定とこのプロバイダのプロパティの削除を行ってもよいかどうかが確認されます。
computeIfAbsent
、インタフェース: Map<Object,Object>
computeIfAbsent
、クラス: Hashtable<Object,Object>
key
- 指定された値が関連付けられるキーmappingFunction
- 値を計算するための関数SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値の設定およびプロパティの削除を行うアクセスを許可しない場合。public Object computeIfPresent(Object key, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
および"removeProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値の設定とこのプロバイダのプロパティの削除を行ってもよいかどうかが確認されます。
computeIfPresent
、インタフェース: Map<Object,Object>
computeIfPresent
、クラス: Hashtable<Object,Object>
key
- 指定された値が関連付けられるキーremappingFunction
- 値を計算するための関数SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値の設定またはプロパティの削除を行うアクセスを許可しない場合。public Object merge(Object key, Object value, BiFunction<? super Object,? super Object,? extends Object> remappingFunction)
セキュリティ・マネージャが有効な場合は、セキュリティ・マネージャのcheckSecurityAccess
メソッドが文字列"putProviderProperty."+name
および"removeProviderProperty."+name
(name
はプロバイダの名前)を指定して呼び出され、このプロバイダのプロパティ値の設定とこのプロバイダのプロパティの削除を行ってもよいかどうかが確認されます。
merge
、インタフェース: Map<Object,Object>
merge
、クラス: Hashtable<Object,Object>
key
- 結果値が関連付けられるキーvalue
- キーに関連付けられた既存の値にマージされるnull以外の値。既存の値がない場合、またはキーにnull値が関連付けられている場合は、キーに関連付けられるnull以外の値remappingFunction
- 値が存在する場合に値を再計算するための関数SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkSecurityAccess(java.lang.String)
メソッドがプロパティ値の設定またはプロパティの削除を行うアクセスを許可しない場合。public Object get(Object key)
Hashtable
null
を返します。
つまり、このメソッドは、(key.equals(k))
となるキーk
から値v
へのマッピングがこのマップに含まれている場合はv
を返し、それ以外の場合はnull
を返します。このようなマッピングが1つだけあります。
public Object getOrDefault(Object key, Object defaultValue)
Map
defaultValue
を返します。getOrDefault
、インタフェース: Map<Object,Object>
getOrDefault
、クラス: Hashtable<Object,Object>
key
- 関連付けられた値が返されるキーdefaultValue
- キーのデフォルト・マッピングdefaultValue
public void forEach(BiConsumer<? super Object,? super Object> action)
Map
public Enumeration<Object> keys()
Hashtable
keys
、クラス: Hashtable<Object,Object>
Enumeration
, Hashtable.elements()
, Hashtable.keySet()
, Map
public Enumeration<Object> elements()
Hashtable
elements
、クラス: Hashtable<Object,Object>
Enumeration
, Hashtable.keys()
, Hashtable.values()
, Map
public String getProperty(String key)
Properties
null
が返されます。getProperty
、クラス: Properties
key
- プロパティ・キー。Properties.setProperty(java.lang.String, java.lang.String)
, Properties.defaults
public Provider.Service getService(String type, String algorithm)
putService()
を使用してこのプロバイダに追加されたものと、put()
経由で追加されたものの2つが見つかった場合、putService()
経由で追加されたサービスが返されます。type
- 要求されるservice
のタイプ(MessageDigest
など)algorithm
- 要求されるサービスのアルゴリズム名または別名(SHA-1
など)。大文字と小文字は区別されるNullPointerException
- type、algorithmのいずれかがnullである場合public Set<Provider.Service> getServices()
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の場合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の場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.