Skip to main content

Settings for the HTTP Outbound Adapter

Provides reference information for settings of the HTTP outbound adapter, EnsLib.HTTP.OutboundAdapterOpens in a new tab.

Summary

The outbound HTTP adapter has the following settings:

Group Settings
Basic Settings HTTP Server, HTTP Port, URL, Credentials
Connection Settings SSL Configuration, SSL Check Server Identity, Proxy Server, Proxy Port, Proxy HTTPS, Proxy Http Tunnel, Response Timeout, ConnectTimeout, WriteTimeout, LocalInterface
OAuth2 OAuth2 Access Token Placement, OAuth2 Client Application Name, OAuth2 Grant Type, OAuth2 Callback Handler, OAuth2 Scope, OAuth2 Authorization Properties, OAuth2 Authorization Workflow Role
OAuth2 Grant Specific OAuth2 JWT Subject
Additional Settings Use Cookies, Extra HTTP Headers, Chunked, ChunkSize, SendSuperSession

The remaining settings are common to all business operations. For information, see Settings for All Business Operations.

Chunked

Specifies whether to apply chunked Transfer-Encoding (RFC9112Opens in a new tab) to each outgoing message. The default is false (outgoing messages do not have chunked Transfer-Encoding).

Chunk Size

Specifies the size of each chunk when using chunked Transfer-Encoding. This setting is used only if Chunked is set true. The value needs to be at least 1.

Connect Timeout

Specifies the number of seconds to wait for the connection to the server to open. The default value is 5.

If the connection is not opened in this time period, the adapter retries repeatedly, up to the number of times given by Failure Timeout divided by Retry Interval.

Credentials

ID of the production credentials that can authorize a connection to the given destination URL. See Defining Production Credentials.

Extra HTTP Headers

Comma-separated list of additional HTTP headers to include. Specify each header as a colon-separated key value pair (for example, Content-Type:text/plain).

HTTP Port

TCP port on the server to send HTTP requests to (will use 80 by default, or 443 if SSLConfig is specified). Values other than 80 are included in the Host: header of the HTTP request that you are sending. For more information, see Specifying the Destination Server and URL Path.

HTTP Server

IP address of the server to send HTTP requests to. This is used in the Host: header of the HTTP request that you are sending. Also see Specifying the Destination Server and URL Path.

Local Interface

Specifies the network interface through which the HTTP connection should go. Select a value from the list or type a value. An empty value means use any interface.

OAuth2 Access Token Placement

Specifies how to send the access token to the Resource Server: Use one of the following choices:

  • Header to use Bearer token HTTP header.

  • Body to use form encoded body. In this case, the request must be a POST with a form-encoded body.

  • Query to use a URL query parameter.

See RFC 6750Opens in a new tab.

OAuth2 Client Application Name

Optionally specifies the OAuth2 Client Configuration Application name to use. If this setting is specified, the adapter uses OAuth2.0 for authentication and uses the given client name in the Authorization and Access Token retrieval process.

OAuth2 Grant Type

Specifies the OAuth2.0 grant type to use. Use one of the following options:

  • Password: In this case, the Credentials object, which includes a username and password, is required.

  • JWT Authorization: In this case, the OAuth2 JWT Subject is required.

  • Client Credentials: In this case, no Credentials object is required. Instead, the adapter uses the Client ID and Client secret from the OAuth 2.0 client.

OAuth2 Callback Handler

Specifies the class that handles obtaining the access token. The default is Ens.Util.OAuth2.HandlerOpens in a new tab which can be subclassed for access token retrieval customization.

OAuth2 Scope

Optionally specifies the scope to be included in the authorization request. If this setting is not specified, the adapter uses the default scope specified in the OAuth2 Client Configuration Application name.

OAuth2 Authorization Properties

Optionally specifies extra properties to included in the grant flow authorization process. Specify this setting as a comma-separated list of key value pair, for example access_type=offline,prompt=consent

OAuth2 Authorization Workflow Role

Optionally specifies the workflow role to which authorization requests will be sent depending on Grant Type flow.

OAuth2 JWT Subject

Specifies the OAuth2 JWT Subject to use when using the JWT Authorization Grant Type flow.

Proxy Authorization

If using a proxy server, specifies the production credentials that can authorize a connection to the given proxy server. See Defining Production Credentials.

Proxy HTTPS

If using a proxy server, indicates whether the proxy server communicates with the target system using HTTPS. If you enable this option and specify a value in the Proxy Server property, then the proxy server issues requests for HTTPS pages rather than HTTP pages. Additionally, enabling this option changes the default HTTP Port to 443, which is the HTTPS port.

Proxy Port

If using a proxy server, specifies the port on the proxy server to connect to. The default value is 8080.

Proxy Server

If using a proxy server, specifies the proxy server host name. Requests are made to the proxy server that you specify on the Proxy Port that you specify. If you do not specify a value, a proxy server is not used.

Proxy HTTP Tunnel

Specifies whether the adapter uses the HTTP CONNECT command to establish a tunnel through the proxy to the target HTTP server. If true, the request uses the HTTP CONNECT command to establish a tunnel. The address of the proxy server is taken from the Proxy Server and Proxy Port properties. If Proxy Https is true, then once the tunnel is established, InterSystems IRIS® negotiates the TLS connection. The default value is false.

Response Timeout

Specifies the timeout for getting a response from the server (the timeout for opening the connection to the server is set by ConnectTimeout). The default value is 30.

If no response is received, the adapter retries repeatedly, up to the number of times given by Failure Timeout divided by Retry Interval.

SSL Check Server Identity

Specifies that when making a TLS connection, the adapter should check that the server identity in the certificate matches the name of the system being connecting to. This defaults to specifying that the check should be made. Clear this for test and development systems where the name specified in the TLS certificate does not match the DNS name.

SSL Configuration

The name of an existing TLS configuration to use to authenticate this connection. Choose a client TLS configuration, because the adapter initiates the communication.

To create and manage TLS configurations, use the Management Portal. See InterSystems TLS Guide. The first field on the Edit SSL/TLS Configuration page is Configuration Name. Use this string as the value for the SSL Configuration setting.

SendSuperSession

The SendSuperSession is a Boolean setting that controls whether the outbound adapter creates a SuperSession header in the HTTP header and assigns an identifier to it. When finding a message, you can use the SuperSession value to match a message in one production with the related message in another production. Within a production, it is easy to track a message as it travels between business services, processes, and operations using the SessionId. But once a message leaves a business operation via an HTTP message and enters a different production, the production receiving the message assigns a new SessionId.

If SendSuperSession is selected, the HTTP outbound adapter does the following:

  1. Check if the message has an empty value in Ens.MessageHeaderBase.SuperSession property. If it does have an empty value, the adapter generates a new value and stores it in the SuperSession property.

  2. Stores the value of the SuperSession property in the private InterSystems.Ensemble.SuperSession HTTP header of the outgoing message.

When an HTTP incoming adapter receives a message, it checks for the SuperSession value in the incoming HTTP message header. If the value is present, it sets the Ens.MessageHeaderBase.SuperSession property. This property is preserved as the message passes from one production component to another.

Note:

There are no tools to automate tracking messages between productions using SuperSession.

URL

URL path to request from the server (not including http:// or the server address).

Also see Specifying the Destination Server and URL Path.

Use Cookies

Specifies whether to save cookies received in HTTP responses while this adapter is instantiated, and insert them in each subsequent HTTP request.

WriteTimeout

Specifies a timeout value for writes to the web server. If this setting is null, there is no timeout.

FeedbackOpens in a new tab