クラスProvider

すべての実装されたインタフェース:
Serializable, Cloneable, Map<Object,Object>
直系の既知のサブクラス:
AuthProvider

public abstract class Provider extends Properties
このクラスは、Java Security APIの「プロバイダ」を表します。プロバイダとは、Javaセキュリティの全体または一部を実装するものです。 プロバイダが実装するのは次のようなサービスです。
  • アルゴリズ (DSA、RSA、SHA-256など)。
  • キーの生成、変換、および管理機能(アルゴリズ 固有キーなど)

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

プロバイダは、その下に収まる実装の選択肢を持つプラガブル・アーキテクチャを使用する任意のセキュリティ・サービスをJavaに実装するために使用できることに注意してく さい。

サービス・タイプProviderはセキュリティ・フレー ワーク用に予約されています。 このタイプのサービスをアプリケーションから追 、削除、または変更することはできません。 各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
関連 目:
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static class 
    特定のセキュリティ・サービスを記述したものです。
  • フィールドのサマリー

    クラスjava.util.Propertiesで宣言されたフィールド

    defaults
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    Provider(String name, double version, String info)
    非推奨。
    代わりにProvider(String, String, String)を使用してく さい。
    protected
    Provider(String name, String versionStr, String info)
    指定された名前、バージョン文字列および情 でProviderを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    このProviderをクリアして、Providerによって実装された機能の検索に使用されるプロパティが含まれないようにします。
    compute(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
    指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない 合はnull)。
    computeIfAbsent(Object key, Function<? super Object, ? extends Object> mappingFunction)
    指定されたキーがま 値に関連付けられていない(またはnullにマップされている) 合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない 合はそれをこのマップに入力します。
    computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
    指定されたキーの値が存在していてnull以外の 合、キーと現在マップされている値から新しいマッピングの計算を試みます。
    configure(String configArg)
    指定された構成引数をこのProviderインスタンスに適用し、構成されたProviderを返します。
    このProviderに含まれるプロパティ・エントリの変更不可能なSetビューを返します。
    void
    forEach(BiConsumer<? super Object, ? super Object> action)
    このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。
    Providerおよびそのサービスの人間が読める説明を返します。
    このProviderの名前を返します。
    getOrDefault(Object key, Object defaultValue)
    指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない 合はdefaultValueを返します。
    getService(String type, String algorithm)
    指定されたタイプの指定されたアルゴリズ または別名に対するこのProviderの実装を記述したサービスを取得します。
    このProviderでサポートされているすべてのサービスの変更不可能なセットを取得します。
    double
    非推奨。
    代わりにgetVersionStr()を使用してく さい。
    このProviderのバージョン文字列を返します。
    boolean
    このProviderインスタンスが構成されているかどうかを確認します。
    このProviderに含まれるプロパティ・キーの変更不可のSetビューを返します。
    void
    load(InputStream inStream)
    入力ストリー からキーと要 が対になったプロパティ・リストを読み込みます。
    merge(Object key, Object value, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
    指定されたキーがま 値に関連付けられていないか、nullに関連付けられている 合は、指定された値に関連付けられます。
    put(Object key, Object value)
    keyプロパティが、指定されたvalueを持つように設定します。
    void
    putAll(Map<?,?> t)
    指定したマップからこのProviderにすべてのマッピングをコピーします。
    putIfAbsent(Object key, Object value)
    指定されたキーがま 値に関連付けられていない(または、nullにマップされている) 合は、それを指定された値に関連付けてnullを返します。それ以外の 合は、現在の値を返します。
    protected void
    サービスを追 します。
    keyプロパティとそれに対応するvalueを削除します。
    boolean
    remove(Object key, Object value)
    指定された値に指定されたキーが現在マッピングされている 合にのみ、そのキーのエントリを削除します。
    protected void
    以前にputService()を使用して追 されたサービスを削除します。
    replace(Object key, Object value)
    指定されたキーがなんらかの値に現在マッピングされている 合にのみ、そのキーのエントリを置換します。
    boolean
    replace(Object key, Object oldValue, Object newValue)
    指定されたキーが指定された値に現在マッピングされている 合にのみ、そのキーのエントリを置換します。
    void
    replaceAll(BiFunction<? super Object, ? super Object, ? extends Object> function)
    すべてのエントリが処理されるか、または関数が例外をスローするまで、エントリ・セット・イテレータによってエントリが返される に、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。
    このProviderの名前とバージョン文字列を含む文字列を返します。
    このProviderに含まれるプロパティ値の変更不可の収集ビューを返します。

    クラス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

      @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

      protected Provider(String name, String versionStr, String info)
      指定された名前、バージョン文字列および情 でProviderを構築します。

      バージョン文字列には、オプションで、バージョン番号の後に「+」、「-」のいずれかの文字で区切られたその他の情 が含まれます。 バージョン番号の形式は次のとおりです:

           ^[0-9]+(\.[0-9]+)*
       

      バージョン番号をdoubleで返すために、3つ以上のコンポーネント(前述のように'.'で区切ります)がある 合、最初の2つのコンポーネントのみが保持されます。 結果の文字列がDouble.valueOf(String)に渡され、バージョン番号(getVersion())が生成されます。

      変換に失敗した 合は、値0が使用されます。

      パラメータ:
      name - プロバイダの名前。
      versionStr - プロバイダのバージョン文字列。
      info - プロバイダとそのサービスの記述。
      導入されたバージョン:
      9
  • メソッドの詳細

    • configure

      public Provider configure(String configArg)
      指定された構成引数をこの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

      public String getName()
      このProviderの名前を返します。
      戻り値:
      このProviderの名前。
    • getVersion

      @Deprecated(since="9") public double getVersion()
      非推奨。
      代わりにgetVersionStr()を使用してく さい。
      このProviderのバージョン番号を返します。
      戻り値:
      このProviderのバージョン番号。
    • getVersionStr

      public String getVersionStr()
      このProviderのバージョン文字列を返します。
      戻り値:
      このProviderのバージョン文字列。
      導入されたバージョン:
      9
    • getInfo

      public String getInfo()
      Providerおよびそのサービスの人間が読める説明を返します。 関連するリンクを持つHTMLページを返すこともあります。
      戻り値:
      Providerおよびそのサービスの説明。
    • toString

      public String toString()
      このProviderの名前とバージョン文字列を含む文字列を返します。
      オーバーライド:
      クラスHashtable<Object,Object>toString
      戻り値:
      このProviderの名前とバージョン文字列を含む文字列。
    • clear

      public void clear()
      このProviderをクリアして、Providerによって実装された機能の検索に使用されるプロパティが含まれないようにします。
      定義:
      インタフェースMap<Object,Object>内のclear
      オーバーライド:
      クラスHashtable<Object,Object>clear
      導入されたバージョン:
      1.2
    • load

      public void load(InputStream inStream) throws IOException
      入力ストリー からキーと要 が対になったプロパティ・リストを読み込みます。
      オーバーライド:
      load、クラスProperties
      パラメータ:
      inStream - 入力ストリー 。
      スロー:
      IOException - 入力ストリー からの読込み中にエラーが発生した 合。
      関連 目:
    • putAll

      public void putAll(Map<?,?> t)
      指定したマップからこのProviderにすべてのマッピングをコピーします。 これらのマッピングは、このProviderが指定したマップに現在存在するキーに対して持っていたすべてのプロパティを置換します。
      定義:
      インタフェースMap<Object,Object>内のputAll
      オーバーライド:
      クラスHashtable<Object,Object>putAll
      パラメータ:
      t - このマップに 納されるマッピング
      導入されたバージョン:
      1.2
    • entrySet

      public Set<Map.Entry<Object,Object>> entrySet()
      このProviderに含まれるプロパティ・エントリの変更不可能なSetビューを返します。
      定義:
      インタフェースMap<Object,Object>内のentrySet
      オーバーライド:
      クラスHashtable<Object,Object>entrySet
      戻り値:
      マップ内に保持されているマッピングのセット・ビュー
      導入されたバージョン:
      1.2
      関連 目:
    • keySet

      public Set<Object> keySet()
      このProviderに含まれるプロパティ・キーの変更不可のSetビューを返します。
      定義:
      インタフェースMap<Object,Object>内のkeySet
      オーバーライド:
      クラスHashtable<Object,Object>keySet
      戻り値:
      マップに含まれているキーのセット・ビュー
      導入されたバージョン:
      1.2
    • values

      public Collection<Object> values()
      このProviderに含まれるプロパティ値の変更不可の収集ビューを返します。
      定義:
      インタフェースMap<Object,Object>内のvalues
      オーバーライド:
      クラスHashtable<Object,Object>values
      戻り値:
      マップ内に含まれている値のコレクション・ビュー
      導入されたバージョン:
      1.2
    • put

      public Object put(Object key, Object value)
      keyプロパティが、指定されたvalueを持つように設定します。
      定義:
      インタフェースMap<Object,Object>内のput
      オーバーライド:
      クラスHashtable<Object,Object>put
      パラメータ:
      key - ハッシュ表キー
      value - 値
      戻り値:
      ハッシュ表の指定されたキーの前の値。それがない 合はnull
      導入されたバージョン:
      1.2
      関連 目:
    • putIfAbsent

      public Object putIfAbsent(Object key, Object value)
      指定されたキーがま 値に関連付けられていない(または、nullにマップされている) 合は、それを指定された値に関連付けてnullを返します。それ以外の 合は、現在の値を返します。
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      指定されたキーに関連付けられた以前の値。キーのマッピングがなかった 合はnull (また、実装がnull値をサポートしている 合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す 合もある。)
      導入されたバージョン:
      1.8
    • remove

      public Object remove(Object key)
      keyプロパティとそれに対応するvalueを削除します。
      定義:
      インタフェースMap<Object,Object>内のremove
      オーバーライド:
      クラスHashtable<Object,Object>remove
      パラメータ:
      key - 削除するキー
      戻り値:
      ハッシュ表でそのキーにマップされている値。マップされている値がない 合はnull
      導入されたバージョン:
      1.2
    • remove

      public boolean remove(Object key, Object value)
      指定された値に指定されたキーが現在マッピングされている 合にのみ、そのキーのエントリを削除します。
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられていると予想される値
      戻り値:
      値が削除された 合はtrue
      導入されたバージョン:
      1.8
    • replace

      public boolean replace(Object key, Object oldValue, Object newValue)
      指定されたキーが指定された値に現在マッピングされている 合にのみ、そのキーのエントリを置換します。
      パラメータ:
      key - 指定された値が関連付けられるキー
      oldValue - 指定されたキーに関連付けられていると予想される値
      newValue - 指定されたキーに関連付けられる値
      戻り値:
      値が置換された 合はtrue
      導入されたバージョン:
      1.8
    • replace

      public Object replace(Object key, Object value)
      指定されたキーがなんらかの値に現在マッピングされている 合にのみ、そのキーのエントリを置換します。
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      指定されたキーに関連付けられた以前の値。キーのマッピングがなかった 合はnull (また、実装がnull値をサポートしている 合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す 合もある。)
      導入されたバージョン:
      1.8
    • replaceAll

      public void replaceAll(BiFunction<? super Object, ? super Object, ? extends Object> function)
      すべてのエントリが処理されるか、または関数が例外をスローするまで、エントリ・セット・イテレータによってエントリが返される に、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。
      パラメータ:
      function - 各エントリに適用する関数
      導入されたバージョン:
      1.8
    • compute

      public Object compute(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
      指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない 合はnull)。
      定義:
      インタフェースMap<Object,Object>内のcompute
      オーバーライド:
      クラスHashtable<Object,Object>compute
      パラメータ:
      key - 指定された値が関連付けられるキー
      remappingFunction - 値をコンピュートするための再マップ関数
      戻り値:
      指定されたキーに関連付けられる新しい値。存在しない 合はnull
      導入されたバージョン:
      1.8
    • 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

      public Object getOrDefault(Object key, Object defaultValue)
      インタフェースからコピーされた説明: Map
      指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない 合はdefaultValueを返します。
      パラメータ:
      key - 関連付けられた値が返されるキー
      defaultValue - キーのデフォルト・マッピング
      戻り値:
      指定されたキーがマップされている値。このマップにそのキーのマッピングが含まれていない 合はdefaultValue
      導入されたバージョン:
      1.8
    • 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