View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.vfs2.provider.ftps;
18  
19  import org.apache.commons.net.ftp.FTPClient;
20  import org.apache.commons.net.ftp.FTPSClient;
21  import org.apache.commons.vfs2.FileSystemException;
22  import org.apache.commons.vfs2.FileSystemOptions;
23  import org.apache.commons.vfs2.UserAuthenticationData;
24  import org.apache.commons.vfs2.provider.GenericFileName;
25  import org.apache.commons.vfs2.provider.ftp.FTPClientWrapper;
26  import org.apache.commons.vfs2.util.UserAuthenticatorUtils;
27  
28  /**
29   * A wrapper to the FTPSClient to allow automatic reconnect on connection loss.
30   * <p>
31   * The only difference to the {@link FTPClientWrapper} is the creation of a {@link FTPSClient} instead of a
32   * {@link FTPClient}.
33   * </p>
34   *
35   * @since 2.0
36   */
37  class FtpsClientWrapper extends FTPClientWrapper {
38  
39      FtpsClientWrapper(final GenericFileName root, final FileSystemOptions fileSystemOptions)
40              throws FileSystemException {
41          super(root, fileSystemOptions);
42      }
43  
44      @Override
45      protected FTPClient createClient(final GenericFileName rootName, final UserAuthenticationData authData)
46              throws FileSystemException {
47          return FtpsClientFactory.createConnection(rootName.getHostName(), rootName.getPort(),
48                  UserAuthenticatorUtils.getData(authData, UserAuthenticationData.USERNAME,
49                          UserAuthenticatorUtils.toChar(rootName.getUserName())),
50                  UserAuthenticatorUtils.getData(authData, UserAuthenticationData.PASSWORD,
51                          UserAuthenticatorUtils.toChar(rootName.getPassword())),
52                  rootName.getPath(), getFileSystemOptions());
53      }
54  }