例えば:
Security.setProperty("ocsp.enable", "true");
そして、これはaCertPathValidator
が使用される場合にのみ使用されます。窮地に立たせるための2つの選択肢があります。
- 再びシングルトンですが、各プロパティにゲッターとセッターがあります
- 現在のコンテキストに関連するプロパティを含むオブジェクト:(
CertPathValidator.setValidatorProperties(..)
すでにセッターがありますPKIXParameters
。これは良いスタートですが、すべてが含まれているわけではありません)
いくつかの理由が考えられます:
- コマンドラインからプロパティを設定する-コマンドラインから上記のクラスのデフォルト値への単純な変換は簡単です
- さまざまなプロバイダーによる追加のカスタムプロパティを許可します-それらは持つことができ、キャストすること
public Map getProviderProperties()
もできます。public Object ..
これらのプロパティは常に最も目に見える場所にあるとは限らないため、興味があります。APIの使用中に表示する代わりに、(運が良ければ)取得する前に数十のGoogle検索結果を確認する必要があります。なぜなら-そもそも-あなたは自分が何を探しているのかを常に正確に知っているとは限らないからです。
私が今観察したもう1つの致命的な欠点は、これがスレッドセーフではないことです。たとえば、2つのスレッドがocspを介して失効を確認する場合は、ocsp.responderURL
プロパティを設定する必要があります。おそらく、互いの設定を上書きします。