1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.netty.handler.ssl.util;
18
19 import io.netty.util.internal.EmptyArrays;
20 import io.netty.util.internal.logging.InternalLogger;
21 import io.netty.util.internal.logging.InternalLoggerFactory;
22
23 import javax.net.ssl.ManagerFactoryParameters;
24 import javax.net.ssl.SSLEngine;
25 import javax.net.ssl.TrustManager;
26 import javax.net.ssl.TrustManagerFactory;
27 import javax.net.ssl.X509ExtendedTrustManager;
28 import javax.net.ssl.X509TrustManager;
29 import java.net.Socket;
30 import java.security.KeyStore;
31 import java.security.cert.CertificateException;
32 import java.security.cert.X509Certificate;
33
34
35
36
37
38
39
40
41
42 public final class InsecureTrustManagerFactory extends SimpleTrustManagerFactory {
43
44 private static final InternalLogger logger = InternalLoggerFactory.getInstance(InsecureTrustManagerFactory.class);
45
46 public static final TrustManagerFactory INSTANCE = new InsecureTrustManagerFactory();
47
48
49
50
51 private static final TrustManager tm = new X509ExtendedTrustManager() {
52 @Override
53 public void checkClientTrusted(X509Certificate[] chain, String authType, Socket socket) {
54 checkClientTrusted(chain, authType);
55 }
56
57 @Override
58 public void checkServerTrusted(X509Certificate[] chain, String authType, Socket socket) {
59 checkServerTrusted(chain, authType);
60 }
61
62 @Override
63 public void checkClientTrusted(X509Certificate[] chain, String authType, SSLEngine engine) {
64 checkClientTrusted(chain, authType);
65 }
66
67 @Override
68 public void checkServerTrusted(X509Certificate[] chain, String authType, SSLEngine engine) {
69 checkServerTrusted(chain, authType);
70 }
71
72 @Override
73 public void checkClientTrusted(X509Certificate[] chain, String s) {
74 if (logger.isDebugEnabled()) {
75 logger.debug("Accepting a client certificate: " + chain[0].getSubjectDN());
76 }
77 }
78
79 @Override
80 public void checkServerTrusted(X509Certificate[] chain, String s) {
81 if (logger.isDebugEnabled()) {
82 logger.debug("Accepting a server certificate: " + chain[0].getSubjectDN());
83 }
84 }
85
86 @Override
87 public X509Certificate[] getAcceptedIssuers() {
88 return EmptyArrays.EMPTY_X509_CERTIFICATES;
89 }
90 };
91
92 private InsecureTrustManagerFactory() { }
93
94 @Override
95 protected void engineInit(KeyStore keyStore) throws Exception { }
96
97 @Override
98 protected void engineInit(ManagerFactoryParameters managerFactoryParameters) throws Exception { }
99
100 @Override
101 protected TrustManager[] engineGetTrustManagers() {
102 return new TrustManager[] { tm };
103 }
104 }