KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > transports > https > SSLSocketFactoryWrapper


1 package org.objectweb.celtix.bus.transports.https;
2
3
4 import java.io.IOException JavaDoc;
5 import java.net.InetAddress JavaDoc;
6 import java.net.Socket JavaDoc;
7 import java.net.UnknownHostException JavaDoc;
8 import java.util.logging.Handler JavaDoc;
9 import java.util.logging.Level JavaDoc;
10 import java.util.logging.Logger JavaDoc;
11
12 import javax.net.ssl.SSLSocket;
13 import javax.net.ssl.SSLSocketFactory;
14
15 import org.objectweb.celtix.common.logging.LogUtils;
16
17 class SSLSocketFactoryWrapper extends SSLSocketFactory {
18     
19     private static final Logger JavaDoc LOG = LogUtils.getL7dLogger(SSLSocketFactoryWrapper.class);
20     
21     private SSLSocketFactory sslSocketFactory;
22     private String JavaDoc[] ciphers;
23     
24     public SSLSocketFactoryWrapper(SSLSocketFactory sslSocketFactoryParam, String JavaDoc[] ciphersParam) {
25         sslSocketFactory = sslSocketFactoryParam;
26         ciphers = ciphersParam;
27     }
28
29     
30     public String JavaDoc[] getDefaultCipherSuites() {
31         return sslSocketFactory.getDefaultCipherSuites();
32     }
33     
34     public String JavaDoc[] getSupportedCipherSuites() {
35         return sslSocketFactory.getSupportedCipherSuites();
36     }
37     
38     public Socket JavaDoc createSocket(Socket JavaDoc s, String JavaDoc host, int port, boolean autoClose)
39         throws IOException JavaDoc, UnknownHostException JavaDoc {
40         
41         SSLSocket socket = null;
42         socket = (SSLSocket)sslSocketFactory.createSocket(s, host, port, autoClose);
43         if ((socket != null) && (ciphers != null)) {
44             socket.setEnabledCipherSuites(ciphers);
45         }
46
47         return socket;
48     }
49
50     public Socket JavaDoc createSocket(String JavaDoc host, int port) throws IOException JavaDoc, UnknownHostException JavaDoc {
51         SSLSocket socket = null;
52         socket = (SSLSocket)sslSocketFactory.createSocket(host, port);
53         if ((socket != null) && (ciphers != null)) {
54             socket.setEnabledCipherSuites(ciphers);
55         }
56         if (socket == null) {
57             LogUtils.log(LOG, Level.SEVERE, "PROBLEM_CREATING_OUTBOUND_REQUEST_SOCKET",
58                          new Object JavaDoc[]{host, port});
59         }
60         return socket;
61     }
62
63
64     public Socket JavaDoc createSocket(String JavaDoc host, int port, InetAddress JavaDoc localHost, int localPort)
65         throws IOException JavaDoc, UnknownHostException JavaDoc {
66         SSLSocket socket = null;
67         socket = (SSLSocket)sslSocketFactory.createSocket(host, port, localHost, localPort);
68         if ((socket != null) && (ciphers != null)) {
69             socket.setEnabledCipherSuites(ciphers);
70         }
71
72         if (socket == null) {
73             LogUtils.log(LOG, Level.SEVERE, "PROBLEM_CREATING_OUTBOUND_REQUEST_SOCKET",
74                          new Object JavaDoc[]{host, port});
75         }
76         return socket;
77     }
78
79
80     public Socket JavaDoc createSocket(InetAddress JavaDoc host, int port) throws IOException JavaDoc {
81         SSLSocket socket = null;
82         socket = (SSLSocket)sslSocketFactory.createSocket(host, port);
83         if ((socket != null) && (ciphers != null)) {
84             socket.setEnabledCipherSuites(ciphers);
85         }
86
87         if (socket == null) {
88             LogUtils.log(LOG, Level.SEVERE, "PROBLEM_CREATING_OUTBOUND_REQUEST_SOCKET",
89                          new Object JavaDoc[]{host, port});
90         }
91         return socket;
92     }
93
94
95     public Socket JavaDoc createSocket(InetAddress JavaDoc address, int port, InetAddress JavaDoc localAddress, int localPort)
96         throws IOException JavaDoc {
97         SSLSocket socket = null;
98         socket = (SSLSocket)sslSocketFactory.createSocket(address, port, localAddress, localPort);
99         if ((socket != null) && (ciphers != null)) {
100             socket.setEnabledCipherSuites(ciphers);
101         }
102
103         if (socket == null) {
104             LogUtils.log(LOG, Level.SEVERE, "PROBLEM_CREATING_OUTBOUND_REQUEST_SOCKET",
105                          new Object JavaDoc[]{address, port});
106         }
107         return socket;
108     }
109     
110     /*
111      * For testing only
112      */

113     protected void addLogHandler(Handler JavaDoc handler) {
114         LOG.addHandler(handler);
115     }
116 }
Popular Tags