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.PlatformDependent;
21 import io.netty.util.internal.SuppressJava6Requirement;
22 import io.netty.util.internal.logging.InternalLogger;
23 import io.netty.util.internal.logging.InternalLoggerFactory;
24
25 import javax.net.ssl.ManagerFactoryParameters;
26 import javax.net.ssl.TrustManager;
27 import javax.net.ssl.TrustManagerFactory;
28 import javax.net.ssl.X509TrustManager;
29 import java.security.KeyStore;
30 import java.security.cert.X509Certificate;
31
32
33
34
35
36
37
38
39
40 public final class InsecureTrustManagerFactory extends SimpleTrustManagerFactory {
41
42 private static final InternalLogger logger = InternalLoggerFactory.getInstance(InsecureTrustManagerFactory.class);
43
44 public static final TrustManagerFactory INSTANCE = new InsecureTrustManagerFactory();
45
46 private static final TrustManager tm = wrapIfNeeded(new X509TrustManager() {
47
48 @Override
49 public void checkClientTrusted(X509Certificate[] chain, String s) {
50 if (logger.isDebugEnabled()) {
51 logger.debug("Accepting a client certificate: " + chain[0].getSubjectDN());
52 }
53 }
54
55 @Override
56 public void checkServerTrusted(X509Certificate[] chain, String s) {
57 if (logger.isDebugEnabled()) {
58 logger.debug("Accepting a server certificate: " + chain[0].getSubjectDN());
59 }
60 }
61
62 @Override
63 public X509Certificate[] getAcceptedIssuers() {
64 return EmptyArrays.EMPTY_X509_CERTIFICATES;
65 }
66 });
67
68 @SuppressJava6Requirement(reason = "Usage guarded by java version check")
69 static X509TrustManager wrapIfNeeded(X509TrustManager tm) {
70 if (PlatformDependent.javaVersion() >= 7) {
71
72
73
74 return new X509TrustManagerWrapper(tm);
75 }
76 return tm;
77 }
78
79 private InsecureTrustManagerFactory() { }
80
81 @Override
82 protected void engineInit(KeyStore keyStore) throws Exception { }
83
84 @Override
85 protected void engineInit(ManagerFactoryParameters managerFactoryParameters) throws Exception { }
86
87 @Override
88 protected TrustManager[] engineGetTrustManagers() {
89 return new TrustManager[] { tm };
90 }
91 }