次のアプローチを使用できます。
まず、SSLContext
オブジェクトを作成するときにオブジェクトへの参照を保持します。
SSLContext sslContext=SSLContext.getDefault();
sslContext.getServerSocketFactory().createServerSocket(1234).accept();
次に、新しい をロードする場合は、次のように、対応するTrustManagerを使用してメソッドを再度TrustManager
呼び出すことができます。init()
TrustManager trustManagers[] = // load trust managers here.
sslContext.init(null,trustManagers,null);
ここで、init()
メソッドは と の 3 つのパラメータをKeyManager[]
取りTrustManager[]
ますSecureRandom
。null
それらのいずれかを渡すSSLContext
と、デフォルトのキー マネージャーとトラスト マネージャーがロードされます。Trust Manager のみをロードしたいので、newTrustManager[]
をそれに渡す必要があります。
オブジェクトへの参照を変更してSSLContext
いないため、フローが中断されたり、既存SSLIOSession
の s に影響したりすることはありません。