# mulesoft FTPS Connector - Full Documentation
---
product: FTPS Connector
version: 2.0
---
# Configuring a Proxy for FTPS Connector
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Anypoint Connector for FTPS (FTPS Connector) enables you to configure an HTTP or HTTPS tunnel proxy.
The following example shows how to configure the **Proxy** field:
1. In Studio, select your FTP Connector operation from the canvas.
2. In the configuration screen for the operation, click the plus sign (**+**) next to **Connector
configuration** to access the global element configuration fields.
3. On the **General** tab, specify the connection information for the connector.
4. Set **Proxy** to **Https tunnel proxy**.
5. Set **TLS Configuration** to **Edit inline**.
6. For **Trust Store Configuration**, select **Insecure**.
7. Set the following fields:
- **Proxy host**: `localhost`
- **Proxy port**: `3129`
- **Proxy username**: `userprox`
- **Proxy host**: `passprox`
8. Click **OK**.

In the **Configuration XML** tab, the configuration `ftp:https-tunnel-proxy` looks like this:
```xml
```
## See Also
- [Salesforce Help](https://help.salesforce.com)
---
product: FTPS Connector
version: 2.1
is-latest-version: true
---
# Configuring a Proxy for FTPS Connector
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Anypoint Connector for FTPS (FTPS Connector) enables you to configure an HTTP or HTTPS tunnel proxy.
The following example shows how to configure the **Proxy** field:
1. In Studio, select your FTP Connector operation from the canvas.
2. In the configuration screen for the operation, click the plus sign (**+**) next to **Connector
configuration** to access the global element configuration fields.
3. On the **General** tab, specify the connection information for the connector.
4. Set **Proxy** to **Https tunnel proxy**.
5. Set **TLS Configuration** to **Edit inline**.
6. For **Trust Store Configuration**, select **Insecure**.
7. Set the following fields:
- **Proxy host**: `localhost`
- **Proxy port**: `3129`
- **Proxy username**: `userprox`
- **Proxy host**: `passprox`
8. Click **OK**.

In the **Configuration XML** tab, the configuration `ftp:https-tunnel-proxy` looks like this:
```xml
```
## See Also
- [MuleSoft Help Center](https://help.mulesoft.com)
---
product: FTPS Connector
version: 2.0
---
# FTPS Connector
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Support Category:
[Premium](https://www.salesforce.com/en-us/wp-content/uploads/sites/4/documents/legal/Agreements/versioning-back-support-policy.pdf)
Anypoint Connector for FTPS (FTPS Connector) connects to FTP servers the same way as the
[FTP Connector](https://docs.mulesoft.com/ftp-connector/latest/) but adds support for
[Transport Layer Security (TLS)](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration).
## Before You Begin
To use this connector, you must be familiar with:
- Anypoint Connectors
- Mule runtime engine (Mule)
- Elements and global elements in a Mule flow
- Creating a Mule app using Anypoint Studio or Anypoint Code Builder
Before creating an app, you must have access to Anypoint Platform and Anypoint Studio.
## See Also
- [FTPS Connector Reference](https://docs.mulesoft.com/ftps-connector/2.0/ftps-documentation)
- [Salesforce Help](https://help.salesforce.com)
---
product: FTPS Connector
version: 2.1
is-latest-version: true
---
# FTPS Connector
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Support Category:
[Premium](https://www.salesforce.com/en-us/wp-content/uploads/sites/4/documents/legal/Agreements/versioning-back-support-policy.pdf)
Anypoint Connector for FTPS (FTPS Connector) connects to FTP servers the same way as the
[FTP Connector](https://docs.mulesoft.com/ftp-connector/latest/) but adds support for
[Transport Layer Security (TLS)](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration).
## Before You Begin
To use this connector, you must be familiar with:
- Anypoint Connectors
- Mule runtime engine (Mule)
- Elements and global elements in a Mule flow
- Creating a Mule app using Anypoint Studio or Anypoint Code Builder
Before creating an app, you must have access to Anypoint Platform and Anypoint Studio.
## See Also
- [FTPS Connector Reference](https://docs.mulesoft.com/ftps-connector/latest/ftps-documentation)
- [MuleSoft Help Center](https://help.mulesoft.com)
---
product: FTPS Connector
version: 2.1
is-latest-version: true
---
# FTPS Connector 2.1 Reference
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Anypoint Connector for FTPS (FTPS Connector) enables you to manipulate files in an FTPS server.
## Configurations
---
### Default Configuration
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Name | | The name for this configuration. Connectors reference the configuration with this name. | | |
Connection | | The connection types to provide to this configuration. | | |
Default write encoding(DEPRECATED) | | This parameter is deprecated and not taken into account. | | |
Time Between Size Check | | This value specifies the wait time between size checks to determine if a file is ready to be read. | | |
Time Between Size Check Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| Specify the time unit to use in the wait time between size checks. | | |
Expiration Policy | | Configures the minimum amount of time that a dynamic configuration instance can remain idle before the runtime considers it eligible for expiration. This does not mean that the platform expires the instance at the exact moment that it becomes eligible. The runtime purges the instances when appropriate. | | |
#### Connection Types
##### FTPS Connection
This configuration corresponds to a specialization of FTP connection provider that supports SSL.
###### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Working Directory | | The directory to consider the root of every relative path used with this connector | | |
Proxy | | Enables you to set HTTP or HTTPS tunnel proxy. | | |
Transfer Mode | | | | |
Passive | | Specifies whether to use passive mode. Set to false to switch to active mode. | | |
Required Libraries | | Ways to add the required Bouncy Castle libraries. | | |
Enable Remote Verification | | Specifies whether or not to verify if the remote host taking part of a data connection is the same as the host to which the control connection is attached. | | |
Control Encoding | | Set the control encoding (for example UTF-8) to use in the control channel with the remote server. This does NOT set the encoding for the content of the files to transfer. | | |
Ftps Mode | FtpsExplicitMode FtpsImplicitMode
| | | |
TLS Configuration | | | | |
Connection Timeout | | | | |
Connection Timeout Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| Time unit to use in the Connection Timeout | | |
Response Timeout | | | | |
Response Timeout Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| Time unit to use in the Response Timeout | | |
Host | | | | |
Port | | | | |
Username | | | | |
Password | | | | |
Reconnection | | When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. | | |
Pooling Profile | | Characteristics of the connection pool | | |
## Supported Operations
- [Copy](#copy)
- [Create Directory](#createDirectory)
- [Delete](#delete)
- [List](#list)
- [Move](#move)
- [Read](#read)
- [Rename](#rename)
- [Write](#write)
## Associated Sources
- [On New or Updated File](#listener)
## Operations
### Copy
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Source Path | | | | |
Target Path | | | | |
Create Parent Directories | | | | |
Overwrite | | | | |
Rename To | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
### Create Directory
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Directory Path | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
### Delete
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Path | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
### List
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Directory Path | | | | |
Recursive | | | | |
File Matching Rules | | Matcher to filter the listed files | | |
Time Between Size Check | | | | |
Time Between Size Check Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| | | |
Streaming Strategy | | Configure to use repeatable streams. | | |
Target Variable | | The name of a variable to store the operation’s output. | | |
Target Value | | An expression to evaluate against the operation’s output and store the expression outcome in the target variable | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors | | |
#### Output
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:ACCESS\_DENIED
### Move
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Source Path | | | | |
Target Path | | | | |
Create Parent Directories | | | | |
Overwrite | | | | |
Rename To | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
### Read
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
File Path | | | | |
Lock | | | | |
Time Between Size Check | | | | |
Time Between Size Check Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| | | |
Output Mime Type | | The MIME type of the payload that this operation outputs. | | |
Output Encoding | | The encoding of the payload that this operation outputs. | | |
Streaming Strategy | | Configure to use repeatable streams. | | |
Target Variable | | The name of a variable to store the operation’s output. | | |
Target Value | | An expression to evaluate against the operation’s output and store the expression outcome in the target variable | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
#### Output
Type | Binary |
Attributes Type | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:FILE\_LOCK
- FTPS:RETRY\_EXHAUSTED
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
### Rename
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Path | | | | |
New Name | | | | |
Overwrite | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
### Write
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Path | | | | |
Content | | Content to be written into the file | | |
Encoding (DEPRECATED) | | This parameter is deprecated and not taken into account for the operation execution. | | |
Create Parent Directories | | | | |
Lock | | | | |
Write Mode | OVERWRITE APPEND CREATE_NEW
| | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:FILE\_LOCK
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
- FTPS:ILLEGAL\_CONTENT
## Sources
### On New or Updated File
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use | | |
Directory | | | | |
Recursive | | Whether or not to also catch files created on sub directories | | |
Matcher | | | | |
Watermark Enabled | | | | |
Time Between Size Check | | Wait time, in milliseconds, between size checks to determine if a file is ready to be read. | | |
Time Between Size Check Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| Time unit to use in the wait time between size checks | | |
Output Mime Type | | The MIME type of the payload that this operation outputs. | | |
Output Encoding | | The encoding of the payload that this operation outputs. | | |
Primary Node Only | | Whether to execute this source only on the primary node when running in a cluster | | |
Scheduling Strategy | | Configures the scheduler that triggers the polling | | |
Streaming Strategy | | Configure to use repeatable streams | | |
Redelivery Policy | | Defines a policy for processing the redelivery of the same message | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors | | |
Auto Delete | | | | |
Move To Directory | | | | |
Rename To | | | | |
Apply Post Action When Failed | | | | |
#### Output
Type | Binary |
Attributes Type | |
### For Configurations
- [Default Configuration](#config)
## Types
### Tls
| Field | Type | Description | Default Value | Required |
|---|
Enabled Protocols | | A comma separated list of protocols enabled for this context. | | |
Enabled Cipher Suites | | A comma separated list of cipher suites enabled for this context. | | |
Trust Store | | | | |
Key Store | | | | |
Revocation Check | | | | |
### Truststore
Configures the TLS truststore.
| Field | Type | Description | Default Value | Required |
|---|
Path | | Path to the truststore. Mule resolves the path relative to the current classpath and file system. | | |
Password | | Password used to protect the truststore. | | |
Type | | Type of truststore. | | |
Algorithm | | Encryption algorithm that the truststore uses. | | |
Insecure | | If true, Mule stops performing certificate validations. Setting this to true can make connections vulnerable to attacks. | | |
### Key Store
Configures the keystore for the TLS protocol. The keystore you generate contains a private key and a
public certificate.
| Field | Type | Description | Default Value | Required |
|---|
Path | | Path to the keystore. Mule resolves the path relative to the current classpath and file system, if possible. | | |
Type | | Type of keystore used. | | |
Alias | | Alias of the key to use when the keystore contains multiple private keys. By default, Mule uses the first key in the file. | | |
Key Password | | Password used to protect the private key. | | |
Password | | Password used to protect the key store. | | |
Algorithm | | Encryption algorithm that the keystore uses. | | |
### Standard Revocation Check
Configures standard revocation checks for TLS certificates.
| Field | Type | Description | Default Value | Required |
|---|
Only End Entities | | Verify the last element of the certificate chain only. | | |
Prefer Crls | | Try CRL instead of OCSP first. | | |
No Fallback | | Do not use the secondary checking method, which is the method not specified in the Prefer Crls field. | | |
Soft Fail | | Avoid verification failure when the revocation server cannot be reached or is busy. | | |
### Custom Ocsp Responder
Configures a custom OCSP responder for certification revocation checks.
| Field | Type | Description | Default Value | Required |
|---|
Url | | URL of the OCSP responder. | | |
Cert Alias | | Alias of the signing certicate for the OCSP response. If specified, the alias must be in the truststore. | | |
### Crl File
Specifies the location of the certification revocation list (CRL) file.
| Field | Type | Description | Default Value | Required |
|---|
Path | | Path to the CRL file. | | |
### Reconnection
| Field | Type | Description | Default Value | Required |
|---|
Fails Deployment | | When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. | | |
Reconnection Strategy | | The reconnection strategy to use. | | |
### Reconnect
| Field | Type | Description | Default Value | Required |
|---|
Frequency | | How often in milliseconds to reconnect. | | |
Count | | How many reconnection attempts to make. | | |
blocking | Boolean | If false, the reconnection strategy runs in a separate, non-blocking thread. | true | |
### Reconnect Forever
| Field | Type | Description | Default Value | Required |
|---|
Frequency | | How often in milliseconds to reconnect. | | |
blocking | Boolean | If false, the reconnection strategy runs in a separate, non-blocking thread. | true | |
### Pooling Profile
| Field | Type | Description | Default Value | Required |
|---|
Max Active | | Controls the maximum number of connections that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted. | | |
Max Idle | | Controls the maximum number of connections that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of connections that may be idle at one time. | | |
Max Wait | | Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the exhaustedAction is set to WHEN_EXHAUSTED_WAIT. | | |
Min Eviction Millis | | Determines the minimum amount of time an object may sit idle in the pool before it is eligible for eviction. When non-positive, no objects will be evicted from the pool due to idle time alone. | | |
Eviction Check Interval Millis | | Specifies the number of milliseconds between runs of the object evictor. When non-positive, no object evictor is executed. | | |
Exhausted Action | WHEN_EXHAUSTED_GROW WHEN_EXHAUSTED_WAIT WHEN_EXHAUSTED_FAIL
| Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are: WHEN_EXHAUSTED_FAIL Will throw a NoSuchElementException
WHEN_EXHAUSTED_WAIT Will block by invoking Object.wait(long) until a new or idle object is available
WHEN_EXHAUSTED_GROW Will create a new Mule instance and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for, at most, that many milliseconds, after which a NoSuchElementException is thrown. If maxThreadWait is a negative value, it is blocked indefinitely.
| | |
Initialisation Policy | INITIALISE_NONE INITIALISE_ONE INITIALISE_ALL
| Determines how components in a pool should be initialized. The possible values are: INITIALISE_NONE Will not load any components into the pool on startup
INITIALISE_ONE Will load one initial component into the pool on startup
INITIALISE_ALL Will load all components in the pool on startup
| | |
Disabled | | Whether pooling should be disabled | | |
### Expiration Policy
| Field | Type | Description | Default Value | Required |
|---|
Max Idle Time | | A scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it’s considered eligible for expiration | | |
Time Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| A time unit that qualifies the maxIdleTime attribute | | |
### Ftp File Attributes
| Field | Type | Description | Default Value | Required |
|---|
Timestamp | | | | |
Name | | | | |
Size | | | | |
Regular File | | | | |
Directory | | | | |
Symbolic Link | | | | |
Path | | | | |
File Name | | | | |
### Matcher
| Field | Type | Description | Default Value | Required |
|---|
Timestamp Since | | | | |
Timestamp Until | | | | |
Not Updated In The Last | | | | |
Updated In The Last | | | | |
Time Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| | | |
Case Sensitive | | Enables you to configure an external file system matcher as case sensitive or insensitive | | |
Filename Pattern | | | | |
Path Pattern | | | | |
Directories | | | | |
Regular Files | | | | |
Sym Links | | | | |
Min Size | | | | |
Max Size | | | | |
### Repeatable In Memory Stream
| Field | Type | Description | Default Value | Required |
|---|
Initial Buffer Size | | The amount of memory that will be allocated to consume the stream and provide random access to it. If the stream contains more data than can be fit into this buffer, then the buffer expands according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize. | | |
Buffer Size Increment | | This is by how much the buffer size expands if it exceeds its initial size. Setting a value of zero or lower means that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised when the buffer gets full. | | |
Max Buffer Size | | The maximum amount of memory to use. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised. A value lower than or equal to zero means no limit. | | |
Buffer Unit | | The unit in which all these attributes are expressed | | |
### Repeatable File Store Stream
| Field | Type | Description | Default Value | Required |
|---|
In Memory Size | | Defines the maximum memory the stream should use to keep data in memory. If more than that is consumed then it will start to buffer the content on disk. | | |
Buffer Unit | | The unit in which maxInMemorySize is expressed | | |
### Redelivery Policy
| Field | Type | Description | Default Value | Required |
|---|
Max Redelivery Count | | The maximum number of times a message can be redelivered and processed unsuccessfully before triggering process-failed-message | | |
Use Secure Hash | | Whether to use a secure hash algorithm to identify a redelivered message. | | |
Message Digest Algorithm | | The secure hashing algorithm to use. If not set, the default is SHA-256. | | |
Id Expression | | Defines one or more expressions to use to determine when a message has been redelivered. This property can be set only if useSecureHash is false. | | |
Object Store | | The object store where the redelivery counter for each message is stored. | | |
### Repeatable In Memory Iterable
| Field | Type | Description | Default Value | Required |
|---|
Initial Buffer Size | | The amount of instances that is initially be allowed to be kept in memory to consume the stream and provide random access to it. If the stream contains more data than can fit into this buffer, then the buffer expands according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize. Default value is 100 instances. | | |
Buffer Size Increment | | This is by how much the buffer size expands if it exceeds its initial size. Setting a value of zero or lower means that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised when the buffer gets full. Default value is 100 instances. | | |
Max Buffer Size | | The maximum amount of memory to use. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised. A value lower than or equal to zero means no limit. | | |
### Repeatable File Store Iterable
| Field | Type | Description | Default Value | Required |
|---|
In Memory Objects | | The maximum amount of instances to keep in memory. If more than this is required, then content starts to buffer on the disk. | | |
Buffer Unit | | The unit in which maxInMemorySize is expressed | | |
### FTPS Explicit Mode
| Field | Type | Description | Default Value | Required |
|---|
Prot Setting | | | | |
### Prot Setting Exporter Sub Type
| Field | Type | Description | Default Value | Required |
|---|
Prot Setting | | | | |
### HTTP Tunnel Proxy
| Field | Type | Description | Default Value | Required |
|---|
Host | | The FTP proxy server host, such as www.mulesoft.com, localhost, or 192.168.0.1, etc. | | |
Port | | Port number of the FTP proxy server to connect. | | |
Username | | Username for the FTP proxy server. Required if the proxy server is authenticated. | | |
Password | | Password for the FTP proxy server. Required if the proxy server is authenticated. | | |
### HTTPS Tunnel Proxy
| Field | Type | Description | Default Value | Required |
|---|
Tls Context Factory | | | | |
Host | | The FTP proxy server host, such as www.mulesoft.com, localhost, or 192.168.0.1, etc. | | |
Port | | Port number of the FTP proxy server to connect. | | |
Username | | Username for the FTP proxy server. Required if the proxy server is authenticated. | | |
Password | | Password for the FTP proxy server. Required if the Proxy server is authenticated. | | |
## See Also
- [FTPS Connector Release Notes](https://docs.mulesoft.com/release-notes/connector/connector-ftps)
- [MuleSoft Help Center](https://help.mulesoft.com)
---
product: FTPS Connector
version: 2.0
---
# FTPS Connector Reference
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
FTPS Connector v2.0
Anypoint Connector for FTPS (FTPS Connector) enables you to manipulate files in an FTPS server.
## Configurations
---
### Default Configuration
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Name | | The name for this configuration. Connectors reference the configuration with this name. | | |
Connection | | The connection types to provide to this configuration. | | |
Default write encoding(DEPRECATED) | | This parameter is deprecated and not taken into account. | | |
Time Between Size Check | | This value specifies the wait time between size checks to determine if a file is ready to be read. | | |
Time Between Size Check Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| Specify the time unit to use in the wait time between size checks. | | |
Expiration Policy | | Configures the minimum amount of time that a dynamic configuration instance can remain idle before the runtime considers it eligible for expiration. This does not mean that the platform expires the instance at the exact moment that it becomes eligible. The runtime purges the instances when appropriate. | | |
#### Connection Types
##### FTPS Connection
This configuration corresponds to a specialization of FTP connection provider that supports SSL.
###### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Working Directory | | The directory to consider the root of every relative path used with this connector | | |
Proxy | | Enables you to set HTTP or HTTPS tunnel proxy. | | |
Transfer Mode | | | | |
Passive | | Specifies whether to use passive mode. Set to false to switch to active mode. | | |
Required Libraries | | Ways to add the required Bouncy Castle libraries. | | |
Enable Remote Verification | | Specifies whether or not to verify if the remote host taking part of a data connection is the same as the host to which the control connection is attached. | | |
Control Encoding | | Set the control encoding (for example UTF-8) to use in the control channel with the remote server. This does NOT set the encoding for the content of the files to transfer. | | |
Ftps Mode | FtpsExplicitMode FtpsImplicitMode
| | | |
TLS Configuration | | | | |
Connection Timeout | | | | |
Connection Timeout Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| Time unit to use in the Connection Timeout | | |
Response Timeout | | | | |
Response Timeout Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| Time unit to use in the Response Timeout | | |
Host | | | | |
Port | | | | |
Username | | | | |
Password | | | | |
Reconnection | | When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. | | |
Pooling Profile | | Characteristics of the connection pool | | |
## Supported Operations
- [Copy](#copy)
- [Create Directory](#createDirectory)
- [Delete](#delete)
- [List](#list)
- [Move](#move)
- [Read](#read)
- [Rename](#rename)
- [Write](#write)
## Associated Sources
- [On New or Updated File](#listener)
## Operations
### Copy
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Source Path | | | | |
Target Path | | | | |
Create Parent Directories | | | | |
Overwrite | | | | |
Rename To | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
### Create Directory
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Directory Path | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
### Delete
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Path | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
### List
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Directory Path | | | | |
Recursive | | | | |
File Matching Rules | | Matcher to filter the listed files | | |
Time Between Size Check | | | | |
Time Between Size Check Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| | | |
Streaming Strategy | | Configure to use repeatable streams. | | |
Target Variable | | The name of a variable to store the operation’s output. | | |
Target Value | | An expression to evaluate against the operation’s output and store the expression outcome in the target variable | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors | | |
#### Output
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:ACCESS\_DENIED
### Move
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Source Path | | | | |
Target Path | | | | |
Create Parent Directories | | | | |
Overwrite | | | | |
Rename To | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
### Read
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
File Path | | | | |
Lock | | | | |
Time Between Size Check | | | | |
Time Between Size Check Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| | | |
Output Mime Type | | The MIME type of the payload that this operation outputs. | | |
Output Encoding | | The encoding of the payload that this operation outputs. | | |
Streaming Strategy | | Configure to use repeatable streams. | | |
Target Variable | | The name of a variable to store the operation’s output. | | |
Target Value | | An expression to evaluate against the operation’s output and store the expression outcome in the target variable | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
#### Output
Type | Binary |
Attributes Type | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:FILE\_LOCK
- FTPS:RETRY\_EXHAUSTED
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
### Rename
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Path | | | | |
New Name | | | | |
Overwrite | | | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors. | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
### Write
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use. | | |
Path | | | | |
Content | | Content to be written into the file | | |
Encoding (DEPRECATED) | | This parameter is deprecated and not taken into account for the operation execution. | | |
Create Parent Directories | | | | |
Lock | | | | |
Write Mode | OVERWRITE APPEND CREATE_NEW
| | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors | | |
### For Configurations
- [Default Configuration](#config)
#### Throws
- FTPS:ILLEGAL\_PATH
- FTPS:FILE\_LOCK
- FTPS:RETRY\_EXHAUSTED
- FTPS:FILE\_ALREADY\_EXISTS
- FTPS:CONNECTIVITY
- FTPS:ACCESS\_DENIED
- FTPS:ILLEGAL\_CONTENT
## Sources
### On New or Updated File
``
#### Parameters
| Name | Type | Description | Default Value | Required |
|---|
Configuration | | The name of the configuration to use | | |
Directory | | | | |
Recursive | | Whether or not to also catch files created on sub directories | | |
Matcher | | | | |
Watermark Enabled | | | | |
Time Between Size Check | | Wait time, in milliseconds, between size checks to determine if a file is ready to be read. | | |
Time Between Size Check Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| Time unit to use in the wait time between size checks | | |
Output Mime Type | | The MIME type of the payload that this operation outputs. | | |
Output Encoding | | The encoding of the payload that this operation outputs. | | |
Primary Node Only | | Whether to execute this source only on the primary node when running in a cluster | | |
Scheduling Strategy | | Configures the scheduler that triggers the polling | | |
Streaming Strategy | | Configure to use repeatable streams | | |
Redelivery Policy | | Defines a policy for processing the redelivery of the same message | | |
Reconnection Strategy | | A retry strategy in case of connectivity errors | | |
Auto Delete | | | | |
Move To Directory | | | | |
Rename To | | | | |
Apply Post Action When Failed | | | | |
#### Output
Type | Binary |
Attributes Type | |
### For Configurations
- [Default Configuration](#config)
## Types
### Tls
| Field | Type | Description | Default Value | Required |
|---|
Enabled Protocols | | A comma separated list of protocols enabled for this context. | | |
Enabled Cipher Suites | | A comma separated list of cipher suites enabled for this context. | | |
Trust Store | | | | |
Key Store | | | | |
Revocation Check | | | | |
### Truststore
Configures the TLS truststore.
| Field | Type | Description | Default Value | Required |
|---|
Path | | Path to the truststore. Mule resolves the path relative to the current classpath and file system. | | |
Password | | Password used to protect the truststore. | | |
Type | | Type of truststore. | | |
Algorithm | | Encryption algorithm that the truststore uses. | | |
Insecure | | If true, Mule stops performing certificate validations. Setting this to true can make connections vulnerable to attacks. | | |
### Key Store
Configures the keystore for the TLS protocol. The keystore you generate contains a private key and a
public certificate.
| Field | Type | Description | Default Value | Required |
|---|
Path | | Path to the keystore. Mule resolves the path relative to the current classpath and file system, if possible. | | |
Type | | Type of keystore used. | | |
Alias | | Alias of the key to use when the keystore contains multiple private keys. By default, Mule uses the first key in the file. | | |
Key Password | | Password used to protect the private key. | | |
Password | | Password used to protect the key store. | | |
Algorithm | | Encryption algorithm that the keystore uses. | | |
### Standard Revocation Check
Configures standard revocation checks for TLS certificates.
| Field | Type | Description | Default Value | Required |
|---|
Only End Entities | | Verify the last element of the certificate chain only. | | |
Prefer Crls | | Try CRL instead of OCSP first. | | |
No Fallback | | Do not use the secondary checking method, which is the method not specified in the Prefer Crls field. | | |
Soft Fail | | Avoid verification failure when the revocation server cannot be reached or is busy. | | |
### Custom Ocsp Responder
Configures a custom OCSP responder for certification revocation checks.
| Field | Type | Description | Default Value | Required |
|---|
Url | | URL of the OCSP responder. | | |
Cert Alias | | Alias of the signing certicate for the OCSP response. If specified, the alias must be in the truststore. | | |
### Crl File
Specifies the location of the certification revocation list (CRL) file.
| Field | Type | Description | Default Value | Required |
|---|
Path | | Path to the CRL file. | | |
### Reconnection
| Field | Type | Description | Default Value | Required |
|---|
Fails Deployment | | When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. | | |
Reconnection Strategy | | The reconnection strategy to use. | | |
### Reconnect
| Field | Type | Description | Default Value | Required |
|---|
Frequency | | How often in milliseconds to reconnect. | | |
Count | | How many reconnection attempts to make. | | |
blocking | Boolean | If false, the reconnection strategy runs in a separate, non-blocking thread. | true | |
### Reconnect Forever
| Field | Type | Description | Default Value | Required |
|---|
Frequency | | How often in milliseconds to reconnect. | | |
blocking | Boolean | If false, the reconnection strategy runs in a separate, non-blocking thread. | true | |
### Pooling Profile
| Field | Type | Description | Default Value | Required |
|---|
Max Active | | Controls the maximum number of connections that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted. | | |
Max Idle | | Controls the maximum number of connections that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of connections that may be idle at one time. | | |
Max Wait | | Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the exhaustedAction is set to WHEN_EXHAUSTED_WAIT. | | |
Min Eviction Millis | | Determines the minimum amount of time an object may sit idle in the pool before it is eligible for eviction. When non-positive, no objects will be evicted from the pool due to idle time alone. | | |
Eviction Check Interval Millis | | Specifies the number of milliseconds between runs of the object evictor. When non-positive, no object evictor is executed. | | |
Exhausted Action | WHEN_EXHAUSTED_GROW WHEN_EXHAUSTED_WAIT WHEN_EXHAUSTED_FAIL
| Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are: WHEN_EXHAUSTED_FAIL Will throw a NoSuchElementException
WHEN_EXHAUSTED_WAIT Will block by invoking Object.wait(long) until a new or idle object is available
WHEN_EXHAUSTED_GROW Will create a new Mule instance and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for, at most, that many milliseconds, after which a NoSuchElementException is thrown. If maxThreadWait is a negative value, it is blocked indefinitely.
| | |
Initialisation Policy | INITIALISE_NONE INITIALISE_ONE INITIALISE_ALL
| Determines how components in a pool should be initialized. The possible values are: INITIALISE_NONE Will not load any components into the pool on startup
INITIALISE_ONE Will load one initial component into the pool on startup
INITIALISE_ALL Will load all components in the pool on startup
| | |
Disabled | | Whether pooling should be disabled | | |
### Expiration Policy
| Field | Type | Description | Default Value | Required |
|---|
Max Idle Time | | A scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it’s considered eligible for expiration | | |
Time Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| A time unit that qualifies the maxIdleTime attribute | | |
### Ftp File Attributes
| Field | Type | Description | Default Value | Required |
|---|
Timestamp | | | | |
Name | | | | |
Size | | | | |
Regular File | | | | |
Directory | | | | |
Symbolic Link | | | | |
Path | | | | |
File Name | | | | |
### Matcher
| Field | Type | Description | Default Value | Required |
|---|
Timestamp Since | | | | |
Timestamp Until | | | | |
Not Updated In The Last | | | | |
Updated In The Last | | | | |
Time Unit | NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS
| | | |
Case Sensitive | | Enables you to configure an external file system matcher as case sensitive or insensitive | | |
Filename Pattern | | | | |
Path Pattern | | | | |
Directories | | | | |
Regular Files | | | | |
Sym Links | | | | |
Min Size | | | | |
Max Size | | | | |
### Repeatable In Memory Stream
| Field | Type | Description | Default Value | Required |
|---|
Initial Buffer Size | | The amount of memory that will be allocated to consume the stream and provide random access to it. If the stream contains more data than can be fit into this buffer, then the buffer expands according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize. | | |
Buffer Size Increment | | This is by how much the buffer size expands if it exceeds its initial size. Setting a value of zero or lower means that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised when the buffer gets full. | | |
Max Buffer Size | | The maximum amount of memory to use. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised. A value lower than or equal to zero means no limit. | | |
Buffer Unit | | The unit in which all these attributes are expressed | | |
### Repeatable File Store Stream
| Field | Type | Description | Default Value | Required |
|---|
In Memory Size | | Defines the maximum memory the stream should use to keep data in memory. If more than that is consumed then it will start to buffer the content on disk. | | |
Buffer Unit | | The unit in which maxInMemorySize is expressed | | |
### Redelivery Policy
| Field | Type | Description | Default Value | Required |
|---|
Max Redelivery Count | | The maximum number of times a message can be redelivered and processed unsuccessfully before triggering process-failed-message | | |
Use Secure Hash | | Whether to use a secure hash algorithm to identify a redelivered message. | | |
Message Digest Algorithm | | The secure hashing algorithm to use. If not set, the default is SHA-256. | | |
Id Expression | | Defines one or more expressions to use to determine when a message has been redelivered. This property can be set only if useSecureHash is false. | | |
Object Store | | The object store where the redelivery counter for each message is stored. | | |
### Repeatable In Memory Iterable
| Field | Type | Description | Default Value | Required |
|---|
Initial Buffer Size | | The amount of instances that is initially be allowed to be kept in memory to consume the stream and provide random access to it. If the stream contains more data than can fit into this buffer, then the buffer expands according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize. Default value is 100 instances. | | |
Buffer Size Increment | | This is by how much the buffer size expands if it exceeds its initial size. Setting a value of zero or lower means that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised when the buffer gets full. Default value is 100 instances. | | |
Max Buffer Size | | The maximum amount of memory to use. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised. A value lower than or equal to zero means no limit. | | |
### Repeatable File Store Iterable
| Field | Type | Description | Default Value | Required |
|---|
In Memory Objects | | The maximum amount of instances to keep in memory. If more than this is required, then content starts to buffer on the disk. | | |
Buffer Unit | | The unit in which maxInMemorySize is expressed | | |
### FTPS Explicit Mode
| Field | Type | Description | Default Value | Required |
|---|
Prot Setting | | | | |
### Prot Setting Exporter Sub Type
| Field | Type | Description | Default Value | Required |
|---|
Prot Setting | | | | |
### HTTP Tunnel Proxy
| Field | Type | Description | Default Value | Required |
|---|
Host | | The FTP proxy server host, such as www.mulesoft.com, localhost, or 192.168.0.1, etc. | | |
Port | | Port number of the FTP proxy server to connect. | | |
Username | | Username for the FTP proxy server. Required if the proxy server is authenticated. | | |
Password | | Password for the FTP proxy server. Required if the proxy server is authenticated. | | |
### HTTPS Tunnel Proxy
| Field | Type | Description | Default Value | Required |
|---|
Tls Context Factory | | | | |
Host | | The FTP proxy server host, such as www.mulesoft.com, localhost, or 192.168.0.1, etc. | | |
Port | | Port number of the FTP proxy server to connect. | | |
Username | | Username for the FTP proxy server. Required if the proxy server is authenticated. | | |
Password | | Password for the FTP proxy server. Required if the Proxy server is authenticated. | | |
## See Also
- [FTPS Connector Release Notes](https://docs.mulesoft.com/release-notes/connector/connector-ftps)
- [Salesforce Help](https://help.salesforce.com)
---
product: FTPS Connector
version: 2.0
---
# FTPS Connector XML and Maven Support
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio.
If you manually code a Mule runtime engine (Mule) app in XML, either from the Anypoint Studio XML
editor or from a text editor, you can get access to the connector in your app by adding reference
statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
When you add the connector in Studio, Studio automatically populates the XML code with the
connector’s namespace and schema location. It also adds a dependency to the `pom.xml` file.
## Add a Namespace for the Connector
Paste the following code inside the `` tag of the header of your configuration XML:
```xml
http://www.mulesoft.org/schema/mule/ftps
http://www.mulesoft.org/schema/mule/ftps/current/mule-ftps.xsd
```
This example shows how the namespace statements are placed in the `` XML block:
```xml
```
## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies for a Mule app.
If you code a Mule app manually, include this XML snippet in your `pom.xml` file to enable access to
this connector:
```xml
com.mulesoft.connectors
mule-ftps-connector
x.x.x
mule-plugin
```
Replace `x.x.x` with the version that corresponds to the connector you are using.
To obtain the most up-to-date `pom.xml` file information:
1. Go to [Anypoint Exchange](https://www.mulesoft.com/exchange/).
2. In Exchange, click **Login** and supply your Anypoint Platform username and password.
3. In Exchange, search for `ftps`.
4. Select the connector.
5. Click **Dependency Snippets** near the upper right of the screen.
## See Also
- [Introduction to Anypoint Connectors](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)
- [Salesforce Help](https://help.salesforce.com)
---
product: FTPS Connector
version: 2.1
is-latest-version: true
---
# FTPS Connector XML and Maven Support
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio.
If you manually code a Mule runtime engine (Mule) app in XML, either from the Anypoint Studio XML
editor or from a text editor, you can get access to the connector in your app by adding reference
statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
When you add the connector in Studio, Studio automatically populates the XML code with the
connector’s namespace and schema location. It also adds a dependency to the `pom.xml` file.
## Add a Namespace for the Connector
Paste the following code inside the `` tag of the header of your configuration XML:
```xml
http://www.mulesoft.org/schema/mule/ftps
http://www.mulesoft.org/schema/mule/ftps/current/mule-ftps.xsd
```
This example shows how the namespace statements are placed in the `` XML block:
```xml
```
## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies for a Mule app.
If you code a Mule app manually, include this XML snippet in your `pom.xml` file to enable access to
this connector:
```xml
com.mulesoft.connectors
mule-ftps-connector
x.x.x
mule-plugin
```
Replace `x.x.x` with the version that corresponds to the connector you are using.
To obtain the most up-to-date `pom.xml` file information:
1. Go to [Anypoint Exchange](https://www.mulesoft.com/exchange/).
2. In Exchange, click **Login** and supply your Anypoint Platform username and password.
3. In Exchange, search for `ftps`.
4. Select the connector.
5. Click **Dependency Snippets** near the upper right of the screen.
## See Also
- [Introduction to Anypoint Connectors](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)
- [MuleSoft Help Center](https://help.mulesoft.com)
---
product: FTPS Connector
version: 2.0
---
# Troubleshoot FTPS Connector
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
To troubleshoot Anypoint Connector for FTPs (FTPS Connector), become familiar with the information
about troubleshooting Mule application issues.
## Troubleshoot Mule Application Issues
Sometimes you are not sure why the application is failing and you require a better understanding of
what is going on in the app’s interaction with the FTPS server.
To resolve this error:
- Use the configuration file to increase the logging level on the server side.
- Try to replicate the issue using an FTPS client, for example, Cyberduck or Filezilla. If the issue
also occurs with these clients, then it is likely that the issue is not related to the Mule app.
- Get better and more detailed logs on the Mule app side by enabling verbose logging for FTPS
Connector and for the JSCH driver:
1. Access Anypoint Studio and navigate to the **Package Explorer** view.
2. Open your application’s project name.
3. Open the `src/main/resources` path folder.
4. Open the `log4j2.xml` file inside the folder.
5. If the following line is already in the `log4j2.xml` file, uncomment it to enable it;
otherwise, add it:
```xml
```
6. Add the following argument to your run configuration:
\`-M-Djavax.net.debug=ssl,handshake\`
- Try to minimize or remove unnecessary DataWeave data transformations (you could even use hard
coded data) to minimize the app’s complexity and determine whether the issue is with the
interaction between the app and the FTPS server.
For additional information about enabling verbose logging for SDK components in your Mule
application, see the [troubleshoot SDK components](https://docs.mulesoft.com/mule-sdk/latest/troubleshooting)
documentation.
## Handle FTPS Session Reuse Errors
When you use FTPS Connector, connection issues can occur during session reuse, such as a
`SocketTimeoutException` error during data connection. To resolve this, include this JVM system
property in your runtime configuration:
`-Dorg.apache.commons.net.ftp.ipAddressFromPasvResponse=true`
> [!NOTE] This setting ensures the IP address from the PASV response is used during data transfer.
> However, enabling this flag exposes your application to potential security vulnerabilities if the
> PASV response is spoofed or manipulated. Use this setting with caution, especially in untrusted
> network environments.
## Understand Common Throws
Here is a list of common throws messages and how to interpret them.
- FTPS:ACCESS\_DENIED
An FTPS Connector operation attempted to access an FTPS server path and performed an action for
which the user has not been granted permission.
- FTPS:CONNECTIVITY
The connection to the FTPS server was interrupted.
- FTPS:FILE\_ALREADY\_EXISTS
An attempt was made to create a file with the same location and name as an existing file.
- FTPS:FILE\_LOCK
An operation made an unsuccessful attempt to acquire a lock over a file.
- FTPS:ILLEGAL\_CONTENT
The **Write** operation received invalid content to write.
- FTPS:ILLEGAL\_PATH
The specified path is invalid because, for example, it does not exist.
- FTPS:RETRY\_EXHAUSTED
Retries of a certain execution block are exhausted.
## See Also
- [Salesforce Help](https://help.salesforce.com)
- [FTPS Connector Reference](https://docs.mulesoft.com/ftps-connector/2.0/ftps-documentation)
---
product: FTPS Connector
version: 2.1
is-latest-version: true
---
# Troubleshoot FTPS Connector
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
To troubleshoot Anypoint Connector for FTPs (FTPS Connector), become familiar with the information
about troubleshooting Mule application issues.
## Troubleshoot Mule Application Issues
Sometimes you are not sure why the application is failing and you require a better understanding of
what is going on in the app’s interaction with the FTPS server.
To resolve this error:
- Use the configuration file to increase the logging level on the server side.
- Try to replicate the issue using an FTPS client, for example, Cyberduck or Filezilla. If the issue
also occurs with these clients, then it is likely that the issue is not related to the Mule app.
- Get better and more detailed logs on the Mule app side by enabling verbose logging for FTPS
Connector and for the JSCH driver:
1. Access Anypoint Studio and navigate to the **Package Explorer** view.
2. Open your application’s project name.
3. Open the `src/main/resources` path folder.
4. Open the `log4j2.xml` file inside the folder.
5. If the following line is already in the `log4j2.xml` file, uncomment it to enable it;
otherwise, add it:
```xml
```
6. Add the following argument to your run configuration:
\`-M-Djavax.net.debug=ssl,handshake\`
- Try to minimize or remove unnecessary DataWeave data transformations (you could even use hard
coded data) to minimize the app’s complexity and determine whether the issue is with the
interaction between the app and the FTPS server.
For additional information about enabling verbose logging for SDK components in your Mule
application, see the [troubleshoot SDK components](https://docs.mulesoft.com/mule-sdk/latest/troubleshooting)
documentation.
## Handle FTPS Session Reuse Errors
When you use FTPS Connector, connection issues can occur during session reuse, such as a
`SocketTimeoutException` error during data connection. To resolve this, include this JVM system
property in your runtime configuration:
`-Dorg.apache.commons.net.ftp.ipAddressFromPasvResponse=true`
> [!NOTE] This setting ensures the IP address from the PASV response is used during data transfer.
> However, enabling this flag exposes your application to potential security vulnerabilities if the
> PASV response is spoofed or manipulated. Use this setting with caution, especially in untrusted
> network environments.
## Understand Common Throws
Here is a list of common throws messages and how to interpret them.
- FTPS:ACCESS\_DENIED
An FTPS Connector operation attempted to access an FTPS server path and performed an action for
which the user has not been granted permission.
- FTPS:CONNECTIVITY
The connection to the FTPS server was interrupted.
- FTPS:FILE\_ALREADY\_EXISTS
An attempt was made to create a file with the same location and name as an existing file.
- FTPS:FILE\_LOCK
An operation made an unsuccessful attempt to acquire a lock over a file.
- FTPS:ILLEGAL\_CONTENT
The **Write** operation received invalid content to write.
- FTPS:ILLEGAL\_PATH
The specified path is invalid because, for example, it does not exist.
- FTPS:RETRY\_EXHAUSTED
Retries of a certain execution block are exhausted.
## See Also
- [MuleSoft Help Center](https://help.mulesoft.com)
- [FTPS Connector Reference](https://docs.mulesoft.com/ftps-connector/latest/ftps-documentation)
---
product: FTPS Connector
version: 2.0
---
# Upgrading and Migrating FTPS Connector to Version 2.0
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Upgrade Anypoint Connector for FTPS (FTPS Connector) to version 2.x.
## Supported Upgrade Paths
## Changes in This Release
This release contains the following changes:
- This connector is now compatible with Java 17.
- This connector is now FIPS 140-2 compliant.
- This connector no longer uses reflection to reuse the SSL session from the command channel to data
channels. Instead, it now supports SSL session resumption between the client and host by using
externally provided Bouncy Castle libraries which are to be set as top security providers. You can
add these libraries with the new **Required Libraries** field in the connection type. For more
information, refer to
[Configure Java JDK for Session Reuse](https://docs.mulesoft.com/ftps-connector/2.0/ftps-studio-configuration#configure-java) and
[Configure Bouncy Castle Libraries and Security Provider](https://docs.mulesoft.com/ftps-connector/2.0/ftps-studio-configuration#bouncycastle).
Because Bouncy Castle security providers are required for running FTPS on Java 17, all Mule
applications within the same JVM must adhere to its stricter cryptographic policies. This includes
enforcing modern key sizes, secure algorithms, and updated TLS configurations—affecting keystores,
truststores, and all TLS-based connectors.
- The `mule-file-commons` module dependency is removed.
- The **List** operation now returns the file path instead of the file content.
## Requirements
Ensure that you meet these requirements before you perform the upgrade:
| Application/Service | Version |
|---|
| |
## Limitations
Before you perform the upgrade, be aware of these known limitations:
- Session reuse doesn’t work well with TLS 1.3 in CloudHub (same as with previous versions of FTPS
Connector).
- The security providers are hardcoded, which means all Mule applications running on the same Java
Virtual Machine (JVM) will share these security settings.
Bouncy Castle security providers enforce stricter cryptographic policies and reject weak
keystores, including those using weak algorithms (such as `SHA1withRSA`) or self-signed
certificates. This affects all keystores in the JVM, even those not directly used by FTPS
Connector. Ensure all keystores in your Mule applications meet modern security standards before
upgrading.
## Upgrade Prerequisites
Before you perform the upgrade, complete these tasks:
- Create a backup of your files, data, and configurations in case you need to restore them.
- Validate all keystores across Mule applications on the same JVM. Replace any keystores using weak
algorithms, such as `SHA1withRSA`, because Bouncy Castle rejects them.
## Upgrade Steps
Follow these steps to perform the upgrade:
1. In Anypoint Studio, create a Mule project.
2. In **Mule Palette**, click **Search in Exchange**.
3. In **Add Dependencies to Project**, enter `FTPS` in the search field.
4. In **Available modules**, select **FTPS Connector** and click **Add**.
5. Click **Finish**.
6. Verify that the FTPS Connector `mule-ftps-connector` dependency version is the one you are
upgrading to in the `pom.xml` file in the Mule project.
Studio upgrades the connector automatically.
### Verify the Upgrade
After you install the latest version of the connector, follow these steps to verify the upgrade:
1. In Studio, verify that there are no errors in the **Problems** or **Console** views.
2. Verify that there are no problems in the project `pom.xml` file.
3. Test the connection to verify that the operations work.
### Reverting the Upgrade
If it is necessary to revert to the previous version of FTPS Connector, change the
`mule-ftps-connector` dependency version in the project’s `pom.xml` file to the previous version.
You must update the project’s `pom.xml` file in Anypoint Studio.
## See Also
- [Introduction to Anypoint Connectors](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)
- [Salesforce Help](https://help.salesforce.com)
---
product: FTPS Connector
version: 2.1
is-latest-version: true
---
# Upgrading and Migrating FTPS Connector to Version 2.1
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Upgrade Anypoint Connector for FTPS (FTPS Connector) to version 2.x.
## Supported Upgrade Paths
## Changes in This Release
This release contains the following changes:
- This connector is now compatible with Java 17.
- This connector is now FIPS 140-2 compliant.
- This connector no longer uses reflection to reuse the SSL session from the command channel to data
channels. Instead, it now supports SSL session resumption between the client and host by using
externally provided Bouncy Castle libraries which are to be set as top security providers. You can
add these libraries with the new **Required Libraries** field in the connection type. For more
information, refer to
[Configure Java JDK for Session Reuse](https://docs.mulesoft.com/ftps-connector/latest/ftps-studio-configuration#configure-java) and
[Configure Bouncy Castle Libraries and Security Provider](https://docs.mulesoft.com/ftps-connector/latest/ftps-studio-configuration#bouncycastle).
Because Bouncy Castle security providers are required for running FTPS on Java 17, all Mule
applications within the same JVM must adhere to its stricter cryptographic policies. This includes
enforcing modern key sizes, secure algorithms, and updated TLS configurations—affecting keystores,
truststores, and all TLS-based connectors.
- The `mule-file-commons` module dependency is removed.
- The **List** operation now returns the file path instead of the file content.
## Requirements
Ensure that you meet these requirements before you perform the upgrade:
| Application/Service | Version |
|---|
| |
## Limitations
Before you perform the upgrade, be aware of these known limitations:
- Session reuse doesn’t work well with TLS 1.3 in CloudHub (same as with previous versions of FTPS
Connector).
- The security providers are hardcoded, which means all Mule applications running on the same Java
Virtual Machine (JVM) will share these security settings.
Bouncy Castle security providers enforce stricter cryptographic policies and reject weak
keystores, including those using weak algorithms (such as `SHA1withRSA`) or self-signed
certificates. This affects all keystores in the JVM, even those not directly used by FTPS
Connector. Ensure all keystores in your Mule applications meet modern security standards before
upgrading.
## Upgrade Prerequisites
Before you perform the upgrade, complete these tasks:
- Create a backup of your files, data, and configurations in case you need to restore them.
- Validate all keystores across Mule applications on the same JVM. Replace any keystores using weak
algorithms, such as `SHA1withRSA`, because Bouncy Castle rejects them.
## Upgrade Steps
Follow these steps to perform the upgrade:
1. In Anypoint Studio, create a Mule project.
2. In **Mule Palette**, click **Search in Exchange**.
3. In **Add Dependencies to Project**, enter `FTPS` in the search field.
4. In **Available modules**, select **FTPS Connector** and click **Add**.
5. Click **Finish**.
6. Verify that the FTPS Connector `mule-ftps-connector` dependency version is the one you are
upgrading to in the `pom.xml` file in the Mule project.
Studio upgrades the connector automatically.
### Verify the Upgrade
After you install the latest version of the connector, follow these steps to verify the upgrade:
1. In Studio, verify that there are no errors in the **Problems** or **Console** views.
2. Verify that there are no problems in the project `pom.xml` file.
3. Test the connection to verify that the operations work.
### Reverting the Upgrade
If it is necessary to revert to the previous version of FTPS Connector, change the
`mule-ftps-connector` dependency version in the project’s `pom.xml` file to the previous version.
You must update the project’s `pom.xml` file in Anypoint Studio.
## See Also
- [Introduction to Anypoint Connectors](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)
- [MuleSoft Help Center](https://help.mulesoft.com)
---
product: FTPS Connector
version: 2.0
---
# Using Anypoint Studio to Configure FTPS Connector 2.0
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Anypoint Studio (Studio) editors help you design and update your Mule applications, properties, and
configuration files.
To add and configure a connector in Studio:
1. [Create a Mule project](#create-mule-project).
2. [Add the connector to your Mule project](#add-connector-to-project).
3. [Configure a source for the connector’s flow](#configure-input-source).
4. [Add a connector operation to the flow](#add-connector-operation).
5. [Configure a global element for the connector](#configure-global-element).
6. [Configure FTPS Mode for FTPS Connector](#configure-ftps-mode).
7. [Configure TLS with Keystores and Truststores](#configure-tls).
8. [Configure Java JDK for Session Reuse](#configure-java).
9. [Configure Bouncy Castle Libraries and Security Provider](#bouncycastle).
When you run the connector, you can view the app log to check for problems in real time, as
described in [View the App Log](#view-app-log).
If you are new to configuring connectors in Studio, see
[Use Studio to Configure a Connector](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio). If,
after reading this topic, you need additional information about the connector fields, see the
[FTPS Connector Reference Reference](https://docs.mulesoft.com/ftps-connector/2.0/ftps-documentation).
## Create a Mule Project
In Studio, create a new Mule project in which to add and configure the connector:
1. In Studio, select **File > New > Mule Project**.
2. Enter a name for your Mule project and click **Finish**.
## Add the Connector to Your Mule Project
Add FTPS Connector to your Mule project to automatically populate the XML code with the connector’s
namespace and schema location and to add the required dependencies to the project’s `pom.xml` file:
1. In the **Mule Palette** view, click **(X) Search in Exchange**.
2. In the **Add Dependencies to Project** window, type `ftps` in the search field.
3. Click **FTPS Connector** in **Available modules**.
4. Click **Add**.
5. Click **Finish**.
Adding a connector to a Mule project in Studio does not make that connector available to other
projects in your Studio workspace.
## Configure a Source
A source initiates a flow when a specified condition is met. You can configure one of these sources
to use with FTPS Connector:
- **On New or Updated File**
Initiates a flow by polling a directory for files that have been created or updated and generates
a message for each file found.
- **HTTP Listener**
Initiates a flow each time it receives a request on the configured host and port.
- **Scheduler**
Initiates a flow when a time-based condition is met.
For example, to configure the On New or Updated File source, follow these steps:
1. In the **Mule Palette** view, select **On New or Updated File**.
2. Drag **On New or Updated File** to the Studio canvas.
3. On the **On New or Updated File** configuration screen, optionally change the value of the
**Display Name** field.
4. Specify a value for the **Path** field.
5. Click the plus sign (**+**) next to the **Connector configuration** field to configure a global
element that can be used by all instances of **On New or Updated File** in the app.
6. On the **General** tab, specify the connection information for the connector.
7. Set **Host** to specify the FTPS server host, for example, `localhost` or `192.168.0.1`.
8. Click **Test Connection** to confirm that Mule can connect with the specified server.
9. Click **OK**.
10. On the **On New or Updated File** configuration screen, specify a **Scheduling Strategy** value
and optionally complete other fields.
## Add a Connector Operation to the Flow
When you add a connector operation to your flow, you immediately define a specific operation for
that connector to perform.
To add an operation for FTPS Connector, follow these steps:
1. In the **Mule Palette** view, select **FTPS** and then select the desired operation.
2. Drag the operation onto the Studio canvas and to the right of the source.

## Configure a Global Element for the Connector
When you configure a connector, it’s best to configure a global element that all instances of that
connector in the app can use. Configuring a global element requires you to configure the FTP server
connection.
To configure the global element for FTPS Connector, follow these steps:
1. Select the name of the connector in the Studio canvas.
2. Select the operation in the Studio canvas.
3. In the configuration screen for the operation, click the plus sign (**+**) next to the
**Connector configuration** field to access the global element configuration fields.
4. On the **General** tab, specify the connection information for the connector:
5. Set the **Working Directory** as the root of every relative path used with this connector.
If it’s not provided, the value defaults to the remote server.
6. Set **Host** to specify the FTPS server host, for example, `localhost` or `0.0.0.0`.
7. Set **Username** and **Password**.
8. Configure Bouncy Castle libraries in the **Required Libraries** field.
9. On the **Advanced** tab, optionally specify a timeout configuration and reconnection strategy.
10. On the **TLS** tab, specify TLS configuration.
11. Click **Test Connection** to confirm that Mule can connect with the specified server.
12. Click **OK**.

In the **Configuration XML** editor, the configuration `ftps:config` looks like this:
```xml
```
## Configure FTPS Mode for FTPS Connector
In the global element configuration, you can configure the **Ftps mode** field to either the
following options:
- **Ftps explicit mode (Default)** The explicit mode connects in an unprotected way to the FTP
server. The client can negotiate TLS for either the command or data channel.
- **Ftps implicit mode** The implicit mode assumes that a secure connection through an SSL/TLS
handshake must take place before any FTP command is sent. This ensures that the entire FTP session
is encrypted.
When you configure the **Ftps explicit mode (Default)**, you can also configure the data channel
protection level through the **PROT Settings** field to either one of these options:
- **CLEAR** The clear protection level indicates that the data channel carries the raw data of the
file transfer, with no security applied. This is the default value.
- **PRIVATE** The private protection level indicates that the integrity of the data and
confidentiality are protected.

In the **Configuration XML** editor, the `ftps=mode`, `ftps-explicit-mode`, and `protSetting`
configurations look like this:
```xml
```

In the **Configuration XML** editor, the `ftps=mode` and `ftps-implicit-mode` configurations look
like this:
```xml
```
## Configure TLS with Keystores and Truststores
You can use Transport Layer Security (TLS) and configure FTPS by providing a key store with your
certificate. You can also enable 2-way authentication by providing a trust store. For more
information about TLS configuration, refer to the
[configure TLS with Keystores and Truststores](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)
documentation.
## Configure Java JDK for Session Reuse
To reuse sessions using FTPS, you must disable the Extended Main Secret extension for compatibility
(JDK-8192045), which by default is set to `true`. The extension protects users from vulnerabilities
by using the same session on different groups of clients and servers, which contradicts the demand
to use the same session for control and data connections. With the Extended Main Secret extension
activated, session reuse is possible only by endpoint verification, which is implemented for HTTPS
and LDAP only.
To disable the extension when working in Anypoint Studio, follow these steps:
1. In Studio, click **Run > Run Configurations…**.
2. In the **Run Configurations** screen, click the **(x)=Arguments** tab.
3. In the **VM arguments** box, add the following argument to the JVM execution:
`-M-Djdk.tls.useExtendedMasterSecret=false`

4. Click **Apply**.
5. Click **Run**.
To disable the Extended Main Secret extension when working in a standalone Mule environment, add the
following argument to the JVM execution:
`./bin/mule -Djdk.tls.useExtendedMasterSecret=false`
## Configure Bouncy Castle Libraries and Security Provider
This connector no longer uses reflection to reuse the SSL session from the command channel to data
channels. Instead, it now supports SSL session resumption between the client and host by using
externally provided Bouncy Castle libraries which are forcefully set as top security providers. You
must add Bouncy Castle libraries to prevent MITM attacks.
To reuse sessions using FTPS Connector, you must configure Bouncy Castle libraries in the **Required
Libraries** field while configuring the global element for the connector. You can choose one of the
three available options to add these libraries.

You can also add these libraries to the `JAVA_VM_FOLDER/jre/lib/ext` folder and set up the Bouncy
Castle security provider:
1. Open the `AnypointStudio.ini` file and identify where Java VM is stored, for example,
`/Applications/AnypointStudio.app/Contents/Eclipse/plugins/org.mule.tooling.jdk.v8.macosx.x86_64_1.3.3/Contents/Home/jre/lib/ext`.
The path to Java VM is set up by the `-vm` command. In the following steps, assume the path
where Java VM is stored is `JAVA_VM_FOLDER`.
2. Download the `bcprov-jdk18on.jar`, `bctls-jdk18on.jar`, `bcpkix-jdk18on.jar`, and
`bcutil-jdk18on.jar` files from https://www.bouncycastle.org/download/bouncy-castle-java/.
3. Copy the files to the `JAVA_VM_FOLDER/jre/lib/ext` folder.
4. Open the `JAVA_VM_FOLDER/jre/lib/security/java.security` file.
5. Set the Bouncy Castle security providers at the beginning of the file, as shown in the following
section:
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider security.provider.3=sun.security.provider.Sun security.provider.4=sun.security.rsa.SunRsaSign security.provider.5=sun.security.ec.SunEC security.provider.6=com.sun.net.ssl.internal.ssl.Provider security.provider.7=com.sun.crypto.provider.SunJCE security.provider.8=sun.security.jgss.SunProvider security.provider.9=com.sun.security.sasl.Provider security.provider.10=org.jcp.xml.dsig.internal.dom.XMLDSigRI security.provider.11=sun.security.smartcardio.SunPCSC security.provider.12=apple.security.AppleProvider |
6. Click **Apply**.
7. Click **Run**.
## View the App Log
To check for problems, you can view the app log as follows:
- If you’re running the app from Anypoint Platform, the output is visible in the Anypoint Studio
console window.
- If you’re running the app using Mule from the command line, the app log is visible in your OS
console.
Unless the log file path is customized in the app’s log file (`log4j2.xml`), you can also view the
app log in the default location `MULE_HOME/logs/.log`.
## See Also
- [Introduction to Anypoint Connectors](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)
- [Use Studio to Configure a Connector](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)
- [FTPS Connector Reference](https://docs.mulesoft.com/ftps-connector/2.0/ftps-documentation)
- [Salesforce Help](https://help.salesforce.com)
---
product: FTPS Connector
version: 2.1
is-latest-version: true
---
# Using Anypoint Studio to Configure FTPS Connector 2.1
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Anypoint Studio (Studio) editors help you design and update your Mule applications, properties, and
configuration files.
To add and configure a connector in Studio:
1. [Create a Mule project](#create-mule-project).
2. [Add the connector to your Mule project](#add-connector-to-project).
3. [Configure a source for the connector’s flow](#configure-input-source).
4. [Add a connector operation to the flow](#add-connector-operation).
5. [Configure a global element for the connector](#configure-global-element).
6. [Configure FTPS Mode for FTPS Connector](#configure-ftps-mode).
7. [Configure TLS with Keystores and Truststores](#configure-tls).
8. [Configure Java JDK for Session Reuse](#configure-java).
9. [Configure Bouncy Castle Libraries and Security Provider](#bouncycastle).
When you run the connector, you can view the app log to check for problems in real time, as
described in [View the App Log](#view-app-log).
If you are new to configuring connectors in Studio, see
[Use Studio to Configure a Connector](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio). If,
after reading this topic, you need additional information about the connector fields, see the
[FTPS Connector Reference Reference](https://docs.mulesoft.com/ftps-connector/latest/ftps-documentation).
## Create a Mule Project
In Studio, create a new Mule project in which to add and configure the connector:
1. In Studio, select **File > New > Mule Project**.
2. Enter a name for your Mule project and click **Finish**.
## Add the Connector to Your Mule Project
Add FTPS Connector to your Mule project to automatically populate the XML code with the connector’s
namespace and schema location and to add the required dependencies to the project’s `pom.xml` file:
1. In the **Mule Palette** view, click **(X) Search in Exchange**.
2. In the **Add Dependencies to Project** window, type `ftps` in the search field.
3. Click **FTPS Connector** in **Available modules**.
4. Click **Add**.
5. Click **Finish**.
Adding a connector to a Mule project in Studio does not make that connector available to other
projects in your Studio workspace.
## Configure a Source
A source initiates a flow when a specified condition is met. You can configure one of these sources
to use with FTPS Connector:
- **On New or Updated File**
Initiates a flow by polling a directory for files that have been created or updated and generates
a message for each file found.
- **HTTP Listener**
Initiates a flow each time it receives a request on the configured host and port.
- **Scheduler**
Initiates a flow when a time-based condition is met.
For example, to configure the On New or Updated File source, follow these steps:
1. In the **Mule Palette** view, select **On New or Updated File**.
2. Drag **On New or Updated File** to the Studio canvas.
3. On the **On New or Updated File** configuration screen, optionally change the value of the
**Display Name** field.
4. Specify a value for the **Path** field.
5. Click the plus sign (**+**) next to the **Connector configuration** field to configure a global
element that can be used by all instances of **On New or Updated File** in the app.
6. On the **General** tab, specify the connection information for the connector.
7. Set **Host** to specify the FTPS server host, for example, `localhost` or `192.168.0.1`.
8. Click **Test Connection** to confirm that Mule can connect with the specified server.
9. Click **OK**.
10. On the **On New or Updated File** configuration screen, specify a **Scheduling Strategy** value
and optionally complete other fields.
## Add a Connector Operation to the Flow
When you add a connector operation to your flow, you immediately define a specific operation for
that connector to perform.
To add an operation for FTPS Connector, follow these steps:
1. In the **Mule Palette** view, select **FTPS** and then select the desired operation.
2. Drag the operation onto the Studio canvas and to the right of the source.

## Configure a Global Element for the Connector
When you configure a connector, it’s best to configure a global element that all instances of that
connector in the app can use. Configuring a global element requires you to configure the FTP server
connection.
To configure the global element for FTPS Connector, follow these steps:
1. Select the name of the connector in the Studio canvas.
2. Select the operation in the Studio canvas.
3. In the configuration screen for the operation, click the plus sign (**+**) next to the
**Connector configuration** field to access the global element configuration fields.
4. On the **General** tab, specify the connection information for the connector:
5. Set the **Working Directory** as the root of every relative path used with this connector.
If it’s not provided, the value defaults to the remote server.
6. Set **Host** to specify the FTPS server host, for example, `localhost` or `0.0.0.0`.
7. Set **Username** and **Password**.
8. Configure Bouncy Castle libraries in the **Required Libraries** field.
9. On the **Advanced** tab, optionally specify a timeout configuration and reconnection strategy.
10. On the **TLS** tab, specify TLS configuration.
11. Click **Test Connection** to confirm that Mule can connect with the specified server.
12. Click **OK**.

In the **Configuration XML** editor, the configuration `ftps:config` looks like this:
```xml
```
## Configure FTPS Mode for FTPS Connector
In the global element configuration, you can configure the **Ftps mode** field to either the
following options:
- **Ftps explicit mode (Default)** The explicit mode connects in an unprotected way to the FTP
server. The client can negotiate TLS for either the command or data channel.
- **Ftps implicit mode** The implicit mode assumes that a secure connection through an SSL/TLS
handshake must take place before any FTP command is sent. This ensures that the entire FTP session
is encrypted.
When you configure the **Ftps explicit mode (Default)**, you can also configure the data channel
protection level through the **PROT Settings** field to either one of these options:
- **CLEAR** The clear protection level indicates that the data channel carries the raw data of the
file transfer, with no security applied. This is the default value.
- **PRIVATE** The private protection level indicates that the integrity of the data and
confidentiality are protected.

In the **Configuration XML** editor, the `ftps=mode`, `ftps-explicit-mode`, and `protSetting`
configurations look like this:
```xml
```

In the **Configuration XML** editor, the `ftps=mode` and `ftps-implicit-mode` configurations look
like this:
```xml
```
## Configure TLS with Keystores and Truststores
You can use Transport Layer Security (TLS) and configure FTPS by providing a key store with your
certificate. You can also enable 2-way authentication by providing a trust store. For more
information about TLS configuration, refer to the
[configure TLS with Keystores and Truststores](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration)
documentation.
## Configure Java JDK for Session Reuse
To reuse sessions using FTPS, you must disable the Extended Main Secret extension for compatibility
(JDK-8192045), which by default is set to `true`. The extension protects users from vulnerabilities
by using the same session on different groups of clients and servers, which contradicts the demand
to use the same session for control and data connections. With the Extended Main Secret extension
activated, session reuse is possible only by endpoint verification, which is implemented for HTTPS
and LDAP only.
To disable the extension when working in Anypoint Studio, follow these steps:
1. In Studio, click **Run > Run Configurations…**.
2. In the **Run Configurations** screen, click the **(x)=Arguments** tab.
3. In the **VM arguments** box, add the following argument to the JVM execution:
`-M-Djdk.tls.useExtendedMasterSecret=false`

4. Click **Apply**.
5. Click **Run**.
To disable the Extended Main Secret extension when working in a standalone Mule environment, add the
following argument to the JVM execution:
`./bin/mule -Djdk.tls.useExtendedMasterSecret=false`
## Configure Bouncy Castle Libraries and Security Provider
This connector no longer uses reflection to reuse the SSL session from the command channel to data
channels. Instead, it now supports SSL session resumption between the client and host by using
externally provided Bouncy Castle libraries which are forcefully set as top security providers. You
must add Bouncy Castle libraries to prevent MITM attacks.
To reuse sessions using FTPS Connector, you must configure Bouncy Castle libraries in the **Required
Libraries** field while configuring the global element for the connector. You can choose one of the
three available options to add these libraries.

You can also add these libraries to the `JAVA_VM_FOLDER/jre/lib/ext` folder and set up the Bouncy
Castle security provider:
1. Open the `AnypointStudio.ini` file and identify where Java VM is stored, for example,
`/Applications/AnypointStudio.app/Contents/Eclipse/plugins/org.mule.tooling.jdk.v8.macosx.x86_64_1.3.3/Contents/Home/jre/lib/ext`.
The path to Java VM is set up by the `-vm` command. In the following steps, assume the path
where Java VM is stored is `JAVA_VM_FOLDER`.
2. Download the `bcprov-jdk18on.jar`, `bctls-jdk18on.jar`, `bcpkix-jdk18on.jar`, and
`bcutil-jdk18on.jar` files from https://www.bouncycastle.org/download/bouncy-castle-java/.
3. Copy the files to the `JAVA_VM_FOLDER/jre/lib/ext` folder.
4. Open the `JAVA_VM_FOLDER/jre/lib/security/java.security` file.
5. Set the Bouncy Castle security providers at the beginning of the file, as shown in the following
section:
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider security.provider.3=sun.security.provider.Sun security.provider.4=sun.security.rsa.SunRsaSign security.provider.5=sun.security.ec.SunEC security.provider.6=com.sun.net.ssl.internal.ssl.Provider security.provider.7=com.sun.crypto.provider.SunJCE security.provider.8=sun.security.jgss.SunProvider security.provider.9=com.sun.security.sasl.Provider security.provider.10=org.jcp.xml.dsig.internal.dom.XMLDSigRI security.provider.11=sun.security.smartcardio.SunPCSC security.provider.12=apple.security.AppleProvider |
6. Click **Apply**.
7. Click **Run**.
## View the App Log
To check for problems, you can view the app log as follows:
- If you’re running the app from Anypoint Platform, the output is visible in the Anypoint Studio
console window.
- If you’re running the app using Mule from the command line, the app log is visible in your OS
console.
Unless the log file path is customized in the app’s log file (`log4j2.xml`), you can also view the
app log in the default location `MULE_HOME/logs/.log`.
## See Also
- [Introduction to Anypoint Connectors](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)
- [Use Studio to Configure a Connector](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)
- [FTPS Connector Reference](https://docs.mulesoft.com/ftps-connector/latest/ftps-documentation)
- [MuleSoft Help Center](https://help.mulesoft.com)