Version: 17.01
Supported Since: 17.01
As the name implies, NIO HTTPS Ingress connector can be considered as the secured version of the NIO HTTP Ingress Connector. That is, all the requests received and responses sent by this connector will be encrypted. In order to achieve that, this connector can be configured to use SSL (Secure Socket Layer) security and TLS (Transport Layer Security).
In addition to the basic configurations required for the NIO HTTP Ingress Connector, NIO HTTPS Ingress Connector require several other configurations to be done. For example, in order to validate remote server/client certificates, this connector need a trust store to be configured. An introduction to all those configurations and how can they be configured will be shown in the following sections of this documentation.
Lets consider a simple use case where the ingress connector accepts requests coming from various clients, add a transport header to the requests and send the requests back to the clients. Following figure shows that scenario. As you have already read, you can just drag and drop those components to create the integration flow.
We have the NIO HTTPS Ingress Connector as the connector
. Then we have connected
the Add Transport
Header processing element as the processor
of the connector. Then we have
connected the ingress connector (through input
port) again as the next
element of the
Add Transport Header processing element.
Since this is a connector written on top of NIO HTTP Ingress Connector, it will be easy for you to understand this connector well if you have some idea about NIO HTTP Ingress Connector. |
All the prerequisites mentioned in the NIO HTTP Ingress Connector are required in order to test this connector since this is a connector written on top of NIO HTTP Ingress Connector. Apart from that, it is better if you have pre-configured some trust stores and identity stores to test the HTTPS connections and 2-way SSL like features.
Following figure show the basic configurations of NIO HTTPS Ingress Connector that has to be provided. These basic configurations are completely similar to the basic configurations of NIO HTTP Ingress Connector’s basic configurations.
port
is the port from which the ingress connector will be listening on and service path
is the url path
to which this connector will be subscribed to. In the example above, requests coming to port 8443
with the
request path /test/path
will be served by this connector and forwarded through the integration flow. Therefore, our request
URL required for testing this integration flow will be http://localhost:8443/test/path
.
We have to set the transport header in the Add Transport Header processing element’s configuration as follows.
You can read more about the Add Transport Header processing element
from here. Here, this processing element will add a new
transport header FOO: bar
to the message and will send the message back to the ingress connector.
Then we have to configure the SSL Configurations of the connector as follows.
For HTTPS protocol to work, a trust store which contains the trusted server certificates and an identity store which holds the listener’s identity are required. If those are not provided, the connector will continue with the JRE’s default identity and trust store.
The transport configurations of this connector are same as NIO HTTP Ingress Connector.
Now let’s try our integration flow. You can use the HTTP/S Client provided in the Ultra Studio Toolbox to send requests
to the ingress connector. To run the integration flow, create a new run configuration with an UltraESB Server. Once you run
the server, use the HTTP/S Client to send requests to the ingress connector listening on port 8443
. The responses you receive
should include a new transport header as FOO: bar
as shown below.
The request shown in the above figure is a POST request with the content "{id : 1}"
. This is the content of the
response received for that request. You can see that a new header FOO: bas
has been added.
HTTP/1.1 200 OK
FOO: bar
User-Agent: AdroitLogic (http://adroitlogic.org) - SOA Toolbox/1.5.0
Host: localhost:8443
Content-Type: text/xml; charset=UTF-8
Date: Thu, 08 Dec 2016 06:29:04 GMT
Server: UltraESB 17.01
Content-Length: 8
Connection: close
{id :1 }
Processor |
The message received by this ingres connector will be emitted through this out port. |
On Exception |
The message will be sent to this outport if the Ingress Connector fails to transform the payload due to some reason |
Input |
The response message to be sent to the client comes through this port. |
* marked are the mandatory parameters
Parameter | Category | Description |
---|---|---|
HTTP Port* |
Basic |
The port on which the ingress connector will be listening on. |
Service Path* |
Basic |
The request path to which this connector will be subscribed to. Only the requests received
through |
Response Timeout |
Advanced |
Timeout in milliseconds after which the request times out. That is,
if a response wasn’t received to the |
Identity Store Location* |
SSL Configuration |
Path to the identity key store where the key-pair used for this ingress connector’s identity is located. |
Identity Store Password* |
SSL Configuration |
Password of the identity key store located at |
Identity Key Password* |
SSL Configuration |
Password used to protect the private key of the identity key-pair. |
Trust Store Location* |
SSL Configuration |
Path to the key store where this ingress connector’s trusted certificates are located at |
Trust Store Password* |
SSL Configuration |
Password used to protect the trust store located at |
SSL Client Verification* |
SSL Configuration |
Indicates whether to validate the clients certificates when
accepting a connection by the ingress connector. Allowed values are, 1. none - no remote client validation happens |
Prevent Client Certificate Verification |
SSL Configuration |
Indicates whether not validate client certificates. This parameter should be turned to |
SSL Protocol Version |
SSL Configuration |
Specify which protocol version to be used for HTTPS connections. This parameter defaults to TLS. Available values are, 1. TLS You can chose the TLS version depending on the level of security your ingress connector is expected to have when transporting data. |
Supported TLS Versions |
SSL Configuration |
The set of TLS versions to be enabled for this ingress connector. |
Supported Cipher Suits |
SSL Configuration |
The set of cipher suites to be enabled should be given here. This is an advanced SSL configuration where only the specified set of cipher suits will be used to encrypt connections between the ingress connector and the clients. |
The Transport Configuration of this connector is same as the transport configurations of the NIO HTTPS Ingress Connector. You can read more about it from here |