1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.net.util;
19
20 import java.security.GeneralSecurityException;
21 import java.security.KeyStore;
22 import java.security.cert.CertificateException;
23 import java.security.cert.X509Certificate;
24
25 import javax.net.ssl.TrustManagerFactory;
26 import javax.net.ssl.X509TrustManager;
27
28
29
30
31
32
33 public final class TrustManagerUtils {
34
35 private static final class TrustManager implements X509TrustManager {
36
37 private final boolean checkServerValidity;
38
39 TrustManager(final boolean checkServerValidity) {
40 this.checkServerValidity = checkServerValidity;
41 }
42
43
44
45
46 @Override
47 public void checkClientTrusted(final X509Certificate[] certificates, final String authType) {
48
49 }
50
51 @Override
52 public void checkServerTrusted(final X509Certificate[] certificates, final String authType) throws CertificateException {
53 if (checkServerValidity) {
54 for (final X509Certificate certificate : certificates) {
55 certificate.checkValidity();
56 }
57 }
58 }
59
60
61
62
63 @Override
64 public X509Certificate[] getAcceptedIssuers() {
65 return NetConstants.EMPTY_X509_CERTIFICATE_ARRAY;
66 }
67 }
68
69 private static final X509TrustManager ACCEPT_ALL = new TrustManager(false);
70
71 private static final X509TrustManager CHECK_SERVER_VALIDITY = new TrustManager(true);
72
73
74
75
76
77
78 public static X509TrustManager getAcceptAllTrustManager() {
79 return ACCEPT_ALL;
80 }
81
82
83
84
85
86
87
88
89
90
91
92
93 public static X509TrustManager getDefaultTrustManager(final KeyStore keyStore) throws GeneralSecurityException {
94 final String defaultAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
95 final TrustManagerFactory instance = TrustManagerFactory.getInstance(defaultAlgorithm);
96 instance.init(keyStore);
97 return (X509TrustManager) instance.getTrustManagers()[0];
98 }
99
100
101
102
103
104
105 public static X509TrustManager getValidateServerCertificateTrustManager() {
106 return CHECK_SERVER_VALIDITY;
107 }
108
109
110
111
112
113
114 @Deprecated
115 public TrustManagerUtils() {
116
117 }
118
119 }