Settings for the HTTP Outbound Adapter
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.
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:
-
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.
-
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.
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).
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.