Я пытаюсь понять, что TrustStrategy принять для метода loadTrustMaterial .
public SSLContextBuilder loadTrustMaterial(KeyStore truststore,
TrustStrategy trustStrategy)
throws NoSuchAlgorithmException,
KeyStoreException
Я нашел четыре разных примера, и мне очень любопытно узнать разницу между этими четырьмя, так как описание слишком мало для понимания различий / использования / преимуществ / недостатков.
Вот четыре различных примера кода:
TrustStrategy: похоже, здесь мы переопределяем стандартный процесс проверки сертификата JSSE, но он всегда возвращает true, поэтому он также доверяет недействительным сертификатам?
TrustStrategy trustStrategy = new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] x509Certificates, String authType) throws CertificateException {
return true;
}
};
SSLContextBuilder sslContextBuilder = SSLContexts.custom()
.loadTrustMaterial(trustStore, trustStrategy);
NULL: Мы НЕ даем никакой стратегии, так что она будет делать?
SSLContextBuilder sslContextBuilder = SSLContexts.custom()
.loadTrustMaterial(trustStore, null);
TrustAllStrategy: Она будет доверять всем подписанным сертификатам, так что это безопасно?
SSLContextBuilder sslContextBuilder = SSLContexts.custom()
.loadTrustMaterial(trustStore, new TrustAllStrategy());
TrustSelfSignedStrategy: В чем разница между этим и TrustAllStrategy?
SSLContextBuilder sslContextBuilder = SSLContexts.custom()
.loadTrustMaterial(trustStore, new TrustSelfSignedStrategy());
Помогите, пожалуйста, понять разницу между этими четырьмя версиями примера? Заранее спасибо.