1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.net.ftp;
19
20 import java.io.IOException;
21 import java.net.InetAddress;
22 import java.net.ServerSocket;
23
24 import javax.net.ServerSocketFactory;
25 import javax.net.ssl.SSLContext;
26 import javax.net.ssl.SSLServerSocket;
27 import javax.net.ssl.SSLServerSocketFactory;
28
29
30
31
32
33
34 public class FTPSServerSocketFactory extends ServerSocketFactory {
35
36
37 private final SSLContext sslContext;
38
39
40
41
42
43
44 public FTPSServerSocketFactory(final SSLContext sslContext) {
45 this.sslContext = sslContext;
46 }
47
48 @SuppressWarnings("resource")
49 @Override
50 public ServerSocket createServerSocket() throws IOException {
51 return init(getServerSocketFactory().createServerSocket());
52 }
53
54 @SuppressWarnings("resource")
55 @Override
56 public ServerSocket createServerSocket(final int port) throws IOException {
57 return init(getServerSocketFactory().createServerSocket(port));
58 }
59
60 @SuppressWarnings("resource")
61 @Override
62 public ServerSocket createServerSocket(final int port, final int backlog) throws IOException {
63 return init(getServerSocketFactory().createServerSocket(port, backlog));
64 }
65
66 @SuppressWarnings("resource")
67 @Override
68 public ServerSocket createServerSocket(final int port, final int backlog, final InetAddress ifAddress) throws IOException {
69 return init(getServerSocketFactory().createServerSocket(port, backlog, ifAddress));
70 }
71
72 private SSLServerSocketFactory getServerSocketFactory() {
73 return this.sslContext.getServerSocketFactory();
74 }
75
76
77
78
79
80
81
82
83 public ServerSocket init(final ServerSocket socket) {
84 ((SSLServerSocket) socket).setUseClientMode(true);
85 return socket;
86 }
87 }