1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.example.securechat;
17
18 import java.security.InvalidAlgorithmParameterException;
19 import java.security.KeyStore;
20 import java.security.KeyStoreException;
21 import java.security.cert.CertificateException;
22 import java.security.cert.X509Certificate;
23
24 import javax.net.ssl.ManagerFactoryParameters;
25 import javax.net.ssl.TrustManager;
26 import javax.net.ssl.TrustManagerFactorySpi;
27 import javax.net.ssl.X509TrustManager;
28
29
30
31
32
33 public class SecureChatTrustManagerFactory extends TrustManagerFactorySpi {
34
35 private static final TrustManager DUMMY_TRUST_MANAGER = new X509TrustManager() {
36 public X509Certificate[] getAcceptedIssuers() {
37 return new X509Certificate[0];
38 }
39
40 public void checkClientTrusted(
41 X509Certificate[] chain, String authType) throws CertificateException {
42
43
44
45
46 System.err.println(
47 "UNKNOWN CLIENT CERTIFICATE: " + chain[0].getSubjectDN());
48 }
49
50 public void checkServerTrusted(
51 X509Certificate[] chain, String authType) throws CertificateException {
52
53
54 System.err.println(
55 "UNKNOWN SERVER CERTIFICATE: " + chain[0].getSubjectDN());
56 }
57 };
58
59 public static TrustManager[] getTrustManagers() {
60 return new TrustManager[] { DUMMY_TRUST_MANAGER };
61 }
62
63 @Override
64 protected TrustManager[] engineGetTrustManagers() {
65 return getTrustManagers();
66 }
67
68 @Override
69 protected void engineInit(KeyStore keystore) throws KeyStoreException {
70
71 }
72
73 @Override
74 protected void engineInit(ManagerFactoryParameters managerFactoryParameters)
75 throws InvalidAlgorithmParameterException {
76
77 }
78 }