What’s new
PingGateway 2025.3
Use Bouncy Castle FIPS
PingGateway now describes how to use Bouncy Castle FIPS to help with FIPS 140–3 compliance without requiring an HSM using a PKCS#11 interface.
Learn more in FIPS 140–3 compliance.
Offload TLS handshakes
ClientTlsOptions
and ServerTlsOptions
now support an optional offloadHandshake
setting (default: false
).
When processing a TLS handshake with revocation checks enabled,
the handshake process can take an extended amount of time, blocking the event thread from processing other requests.
When this option is true
, PingGateway processes the TLS handshake in a separate worker thread.
The event thread continues to process other requests.
Close connections gracefully
PingGateway now supports options to help close connections more gracefully.
Use the new "connectionTimeToLive"
and "connectionShutdownGracePeriod"
settings for connections
to servers and
from client applications.
Custom unauthorized responses for Kerberos
The KerberosIdentityAssertionPlugin
now supports customzing the HTTP 401 Unauthorized responses with an optional unauthorizedResponseHandler
.
When a browser can’t supply a Kerberos token and isn’t configured to deal appropriately with HTTP 401 Unauthorized,
the default response can leave the user stuck on an unauthorized page.
Use the unauthorizedResponseHandler
provide an appropriate response to resolve this issue.
OpenTelemetry now supported
OpenTelemetry support is no longer a technology preview. It is now a supported feature.
The feature has Evolving interface stability. It is subject to change without notice, even in a minor or maintenance release.
PingGateway 2024.11
Device profile support for risk evaluation
PingGateway now supports gathering device profile data from the user-agent and including the profile data in PingOne Protect risk evaluation requests.
Learn more in PingOne Protect integration.
PKCE support for OAuth 2.0 clients
The AuthorizationCodeOAuth2ClientFilter and ClientRegistration configurations now support RFC 7636: Proof Key for Code Exchange by OAuth Public Clients (PKCE).
PKCE is enabled by default and recommended.
To disable it, set "pkce_method": "none"
or "pkceMethod": "none"
as described in the reference documentation.
Graceful shutdown
The stop.sh
and stop.bat
scripts now accept additional arguments to change how long the script waits
before forcing the PingGateway process to terminate.
Learn more in Graceful shutdown.
Lifetime for CDSSO sessions
The CrossDomainSingleSignOnFilter now has
a "lifetime"
setting to configure the duration after which PingGateway removes
the initial CDSSO authentication session state.
Propagate disconnections
PingGateway now supports a ClientHandler and
ReverseProxyHandler "propagateDisconnection"
setting
to reset the connection to the protected application when the user-agent disconnects
and PingGateway is in streaming mode.
Support for DER certificates
PingGateway now supports a
derCertificate(string)
function to convert a base64-encoded DER-format string into a certificate.
More flexible AmSessionIdleTimeoutFilter
settings
A new "idleTimeoutUpdate": "INCREASE_ONLY_THEN_ALWAYS"
setting for
AmSessionIdleTimeoutFilters
lets you enforce the longest timeout of either the idle timeout from the current filter or the tracking token,
and then set the tracking token timeout to the idle timeout of the filter.
PingGateway uses the updated tracking token on the next interaction with an AmSessionIdleTimeoutFilter.
The next AmSessionIdleTimeoutFilter filter can use a different "idleTimeoutUpdate"
setting, for example,
to enforce a shorter idle timeout.
PingGateway 2024.9
OpenTelemetry capabilities
This release adds the ability to push traces to an OpenTelemetry service.
These capabilities are available in Technology preview. They aren’t yet supported, may be functionally incomplete, and are subject to change without notice. |
Learn more in the following documentation:
Multiple versions of a secret with FileSystemSecretStore
With the new FileSystemSecretStore versionSuffix
setting you can have multiple versions of a secret with the same ID.
Learn more in FileSystemSecretStore.
Replace setting for HeaderFilter
Use the new HeaderFilter replace
setting to replace headers instead of removing then adding them.
Learn more in HeaderFilter.
Runtime exception condition for retries
The new runtimeExceptionCondition
setting lets you restrict which runtime exceptions lead to retries.
Learn more in ClientHandler and ReverseProxyHandler.
Security provider setting for keystores
The new securityProvider
setting lets you choose the Java security provider to use when loading a keystore.
Learn more in KeyStoreSecretStore.
Delayed route metrics creation
The new delayRouteMetrics
setting lets you defer creation of route metrics until a request passes through the route.
This can improve startup times for deployments with many routes.
Learn more in Router.
Separate endpoint for administration
PingGateway now lets you configure a separate endpoint for administrative connections. PingGateway is expected to require a separate administrative endpoint in a future release.
Learn more in AdminHttpApplication (admin.json
).
New PingOne Authorize example
The documentation now includes an example showing how to protect a web application with help from PingOne Authorize.
Learn more in PingOne Authorize integration.
Asynchronous reads in FileAttributesFilter
and SqlAttributesFilter
When you omit the deprecated target
setting from
a FileAttributesFilter
or an SqlAttributesFilter,
PingGateway reads the file or performs the SQL query asynchronously when calling the filter.
Place the filter immediately before the entity reading the data from the context.
PingGateway 2024.6
IG becomes PingGateway
Product names changed when ForgeRock became part of Ping Identity. PingGateway was formerly known as ForgeRock Identity Gateway. Learn more about the name changes in New names for ForgeRock products.
PingOne Protect integration
You can now use PingOne Protect risk evaluations to help protect web applications. Configure PingGateway routes to react dynamically to risk scores from PingOne Protect.
PingOne Protect integration is available in Technology preview. It isn’t yet supported, may be functionally incomplete, and is subject to change without notice. |
Learn more in PingOne Protect integration.
Changes to the Prometheus Scrape Endpoint
To facilitate consumption of Prometheus metrics, the format of some metrics has been updated
and the new format is available on the new endpoint …/openig/metrics/prometheus/0.0.4
.
The old format and endpoint are deprecated, but for backward compatibility, they are enabled and available by default.
The new property serveDeprecatedPrometheusEndpoint
in
AdminHttpApplication
is available to deliver Prometheus metrics in the deprecated format.
It is enabled by default.
Learn more in Metrics at the Prometheus Scrape Endpoint.
New metrics at the Prometheus Scrape Endpoint
Startup and Websocket metrics are now available at the Prometheus Scrape Endpoint. Learn more in Startup metrics at the Prometheus Scrape Endpoint and WebSocket metrics at the Prometheus Scrape Endpoint.
PingOneApiAccessManagementFilter now supported
The PingOneApiAccessManagementFilter is now supported for general use.
Hardened security for OpenID Connect ID tokens
PingGateway now supports OpenID Connect ID token validation according to the OpenID Connect specifications.
For this release, signature validation is optional. The next major release is expected to make ID token signature validation required.
The following new properties enable validation of the ID token signatures and the
iss
, aud
, exp
, iat
, and nonce
claims:
-
-
skipSignatureVerification
-
clientSecretUsage
In addition, use the
clientSecretId
andsecretsProvider
properties for HMAC-based signature validation. -
-
-
issuer
-
secretsProvider
-
idTokenVerificationSecretId
-
idTokenSkewAllowance
-
Learn more about ClientRegistration configurations and Issuer configurations in Incompatible changes.
IG 2024.3
Local authentication on behalf of PingOne Advanced Identity Cloud and Kerberos validation
The following new objects are available for local processing on behalf of PingOne Advanced Identity Cloud as part of an PingOne Advanced Identity Cloud journey:
-
KerberosIdentityAssertionPlugin and the service objects UsernamePasswordServiceLogin and KeytabServiceLogin.
These objects exist alongside the Technical Preview objects, IdentityAssertionHandlerTechPreview, ScriptableIdentityAssertionPluginTechPreview, and IdentityAssertionPluginTechPreview, introduced in the last release.
Monitoring of caches
Monitoring metrics are now available at the Prometheus Scrape Endpoint and Common REST Monitoring Endpoint for the caches described in Caches.
Learn more in Cache metrics at the Prometheus Scrape Endpoint.
Use of secrets in Studio
IG now uses secrets instead of deprecated passwords. Learn how IG manages migration in Upgrade from an earlier version of Studio.
Use of Splunk or ElasticSearch audit event handlers in Studio
IG Studio no longer uses the deprecated Splunk or ElasticSearch audit event handlers. Learn how IG manages migration in Upgrade from an earlier version of Studio.
Hardened security for secrets
With PingOne Advanced Identity Cloud and from AM 7.5, passwords hardcoded in the identity provider configuration can optionally be managed by the identity provider’s secret service. These passwords include the IG agent passwords and OAuth 2.0 client passwords.
IssuerRepository
An IssuerRepository is provided as a default object. Learn more in Default objects.
Dedicated filter for PingOne’s API Access Management (Technology preview)
PingOneApiAccessManagementFilter is a new filter dedicated to PingOne’s API Access Management. Use this filter with API Access Management to evaluate HTTP requests and responses.
The PingOneApiAccessManagementFilter is available in Technology preview. It isn’t yet supported, may be functionally incomplete, and is subject to change without notice. |
IG 2023.11.x
IG 2023.11.1 is a maintenance version to fix issues listed in Fixed in 2023.11.1. It contains no new features. |
General features
Harden OAuth 2.0 access token requests
GrantSwapJwtAssertionOAuth2ClientFilter is a new filter to transform requests for OAuth 2.0 access tokens into secure JWT bearer grant type requests.
Use this filter with PingOne Advanced Identity Cloud or AM to increase the security of less-secure grant-type requests like Client credentials grant or Resource owner password credentials grant.
Learn more in Secure the OAuth 2.0 access token endpoint.
Include key ID in JWT header
The new includeKeyId
property is available in JwtBuilderFilter
to include the ID of the signature key in the header of a built JWT.
Local processing on behalf of PingOne Advanced Identity Cloud (Technology preview)
The following new objects are available for local processing on behalf of PingOne Advanced Identity Cloud as part of an PingOne Advanced Identity Cloud journey:
The IdentityAssertionHandlerTechPreview, ScriptableIdentityAssertionPluginTechPreview, and IdentityAssertionPluginTechPreview are available in Technology preview. They aren’t yet supported, may be functionally incomplete, and are subject to change without notice. |
Secret format JwkPropertyFormat
JwkPropertyFormat is a new secret format. Use it with FileSystemSecretStore to decode JSON Web Key (JWK) formatted keys into secrets.
More flexible use of CA-certificates in mutual TLS
The new property certificateVerificationSecretId
is available in
SecretsTrustManager to use of CA certificates in mutual TLS.
In previous releases, the use of CA-signed certificates was more restricted.
Safeguard against accidental exposure of private keys with JwkSetHandler
The exposePrivateSecrets
new property is available in
JwkSetHandler
to safeguard against the accidental exposure of private keys in a JWK set.
The property is false
by default to prevent exposure of private keys.
To expose private keys, explicitly set the property to true
.
SAML
Prevention of redirect loops when session cookies aren’t present in the SAML flow
In SamlFederationFilter,
the new redirectionMarker
property is enabled by default to prevent redirect loops
when a session cookie isn’t present in the SAML flow.
When the marker is present in the request query parameters, the request isn’t redirected for authentication.
IG 2023.9
Revocation of access tokens initiated by OAuth 2.0 Resource Servers
The following new properties have been added in AuthorizationCodeOAuth2ClientFilter and Issuer:
-
AuthorizationCodeOAuth2ClientFilter:revokeOauth2TokenOnLogout
-
Issuer:revocationEndpoint
In OpenID Connect, use these properties to revoke access and refresh tokens issued by Authorization Servers during login.
Logout initiated by OpenID Connect relying parties
The following new properties have been added in AuthorizationCodeOAuth2ClientFilter and Issuer:
-
AuthorizationCodeOAuth2ClientFilter:openIdEndSessionOnLogout
-
Issuer:endSessionEndpoint
In OpenID Connect, use these properties to initiate logout from authorization servers.
Option to require the Authorization Server to prompt the end-user to reauthenticate and consent
A new property prompt
is available in AuthorizationCodeOAuth2ClientFilter.
Use the property in OIDC flows to require the authorization server to prompt the end user to reauthenticate and consent.
Improved error handling for AuthorizationCodeOAuth2ClientFilter
When an OAuth 2.0 authorization operation fails, the AuthorizationCodeOAuth2ClientFilter injects the error and error description into the OAuth2FailureContext. In previous releases, OAuth2FailureContext was used only for the OAuth2TokenExchangeFilter.
New context for use with AuthorizationCodeOAuth2ClientFilter
In AuthorizationCodeOAuth2ClientFilter, retrieve the original target URI for a request from the new IdpSelectionLoginContext.
Improved security for CrossDomainSingleSignOnFilter
When verificationSecretId
in CrossDomainSingleSignOnFilter isn’t configured,
IG discovers and uses the AM JWK set to verify the signature of AM session tokens.
If the JWK set isn’t available, IG doesn’t verify the tokens.
In earlier releases,
IG didn’t verify the tokens when verificationSecretId
in CrossDomainSingleSignOnFilter wasn’t configured.
To minimize the risk of CDSSO token tampering, always configure verificationSecretId
in CrossDomainSingleSignOnFilter.
IG 2023.6
Large JWT session cookies are automatically split
In stateless sessions, when the JWT session cookie exceeds 4 KBytes, IG automatically splits it into multiple cookies.
If your JWT session size is too close to the value of connectors:maxTotalHeadersSize
in AdminHttpApplication,
IG can block your next request containing split JWT session cookies.
Consider increasing the value of connectors:maxTotalHeadersSize
.
JWT session cookies not compressed by default
To improve security, JWT session cookies are no longer compressed by default.
Startup allowed if there is an existing PID file
IG can now start up when there is an existing PID file. When activated, IG removes the existing PID file and creates a new one during startup. In previous releases, if there was an existing PID file during startup, the startup failed.
Activate the feature in the following ways:
-
By the new property
pidFileMode
in AdminHttpApplication. -
With the new configuration token
ig.pid.file.mode
.
Prevention of redirect loops when session cookies aren’t present in the CDSSO flow
In CrossDomainSingleSignOnFilter,
the new redirectionMarker
property is enabled by default to prevent redirect loops
when the session cookie isn’t present in the CDSSO flow.
When the marker is present in the request query parameters, the request isn’t redirected for authentication.
Regex-based alias selection in KeyStoreSecretStore and HsmSecretStore
The new mappings:aliasesMatching
property in KeyStoreSecretStore and HsmSecretStore is available
to map all aliases that match a regular expression to a secret ID.
Some KeyStores, such as a global Java TrustStore, can contain hundreds of valid certificates. Use this property to map multiple aliases to a secret ID without listing them all in the mapping.
Entity of StaticResponseHandler can be an array of strings
To improve readability, you can now define the entity
property of a StaticResponseHandler
as an array of strings or as a string.
Maximum size for the sum of all request headers
The new connectors:maxTotalHeadersSize
property in AdminHttpApplication defines
the maximum size in bytes for the sum of all headers in a request.
This property replaces the deprecated Vert.x properties maxHeaderSize
and initialSettings:maxHeaderListSize
.
Support for unencoded policy advices
To support SDK in legacy installations,
a new useLegacyAdviceEncoding
property in the PolicyEnforcementFilter is available to provide unencoded advices.
By default, advices are encoded with the encoder used by the AM version.
The use of this property is deprecated and should be used only to support SDK in legacy installations.
IG 2023.4
Authentication of IG agent to PingOne Advanced Identity Cloud and AM
IG agents automatically authenticate to PingOne Advanced Identity Cloud and AM with a non-configurable authentication module. Authentication chains and modules are deprecated and replaced by nodes, trees, and journeys.
You can now authenticate IG agents to PingOne Advanced Identity Cloud and AM 7.3 with a journey. The procedure is currently optional, but will be required when authentication chains and modules are removed.
Policy advices from PingOne Advanced Identity Cloud and AM available in a header
By default, when PingOne Advanced Identity Cloud or AM denies a request with advices, IG returns a redirect response with advices as parameters.
When the request includes the x-authenticate-response
header with the value header
,
IG now returns the response with the advices in a WWW-authentication
header.
Use this method for SDKs and single page applications. Placing advices in a header gives these applications more options for handling the advices.
Use the new authenticateResponseRequestHeader
property in PolicyEnforcementFilter to configure
the x-authenticate-response
header name.
SAML
The SamlFederationHandler is deprecated and replaced by the SamlFederationFilter.
The SamlFederationFilter can be used in a route protect a downstream application in the same way as other authentication-triggering filters like a SingleSignOnFilter or CrossDomainSingleSignOnFilter.
When triggered, the SamlFederationFilter can initiate the login or logout of a SAML service provider with a SAML identity provider.
WebSocket connection renewal
IG can now automatically renew WebSocket connections to AM after a defined delay.
Limit side effects when backend applications are slow
ClientHandler and ReverseProxyHandler have a new waitQueueSize
property to set
the maximum number of outbound requests allowed to queue when no downstream connections are available.
Use this property to limit memory use when there is a backlog of outbound requests, for example,
when the protected application or third-party service is slow.
In previous releases, the queue size was unlimited.
It is now limited to the square of the value of the connections
property by default.
IG 2023.2
Session eviction
AM 7.3 can be configured to invalidate sessions based on user ID
and send a notification with the topic /agent/session.v2
to IG.
IG can now use the notification to evict all sessions bound to the user.
This feature requires AM 7.3. |
Preserve POST data during authentication
The DataPreservationFilter triggers POST data preservation when an unauthenticated client posts HTML form data to a protected resource.
Prevent unnecessary session expiry
When the AmService property sessionIdleRefresh
is enabled, IG now requests session refresh:
-
The first time IG gets an SSO token from AM, irrespective of the age of the token.
-
When
sessionIdleRefresh.interval
has elapsed.
In previous releases, IG requested session refresh only after sessionIdleRefresh.interval
elapsed.
If IG got an SSO token close to its maximum idle time,
the token could expire before sessionIdleRefresh.interval
elapsed and IG triggered a refresh.
CapturedUserPasswordFilter supports secret rotation
When relying on a SecretsProvider to retrieve the shared key required by the CapturedUserPasswordFilter, you can now rotate a secret without reloading the filter if the underlying secret store supports secret rotation.
KeyStoreSecretStore allows unprotected KeyStores
KeyStoreSecretStore can now use KeyStores that aren’t password-protected. In previous releases, KeyStores had to be password-protected.
Delay destroying HttpClientHandlerHeaplets during shutdown
When IG is cleanly shut down, the destruction of HttpClientHandlerHeaplets is now delayed until all other IG heaplets are destroyed. This change allows the other IG heaplets to use HttpClientHandlerHeaplets during shutdown. For example, AmService can now call logout on any agent tokens it has allocated, which can help to reduce the build up of tokens in AM.
ClientHandlers and ReverseProxyHandlers are examples of HttpClientHandlerHeaplets.
Automatic reload of FileSystemSecretStore and KeystoreSecretStore
A new autoRefresh
property is available in FileSystemSecretStore and KeyStoreSecretStore settings
to configure automatic reloaded of the secret store when a file or a keystore is edited or deleted.
Groovy 4
IG now uses Groovy 4 for scripting. Learn more in the Release notes for Groovy 4.0
IG 7.2
Token exchange
OAuth2TokenExchangeFilter is a new filter to exchange a client’s access token or ID token for a new token with increased or reduced scopes, while preserving the original token subject.
Connectivity with OAuth 2.0-protected third-party services
OAuth2ClientFilter renamed as AuthorizationCodeOAuth2ClientFilter
IG provides several client authentication filters to protect resources using different types of information and credentials. To make it easier to differentiate between these filters, the OAuth2ClientFilter is now named AuthorizationCodeOAuth2ClientFilter. For backward compatibility, you can still use the name OAuth2ClientFilter in routes.
The following client authentication filters are available to authenticate clients:
-
AuthorizationCodeOAuth2ClientFilter, using OAuth 2.0 delegated authorization.
-
ClientCredentialsOAuth2ClientFilter, using the client’s OAuth 2.0 credentials.
-
ResourceOwnerOAuth2ClientFilter, using the resource owner’s password credentials.
ClientCredentialsOAuth2ClientFilter uses client_secret_basic
or client_secret_post
The ClientCredentialsOAuth2ClientFilter
can now get a client’s access token using the token endpoint authentication method client_secret_post
.
In previous releases, it could use only client_secret_basic
.
Client authentication is now provided by the endpointHandler
property of ClientCredentialsOAuth2ClientFilter,
which uses ClientSecretBasicAuthenticationFilter or ClientSecretPostAuthenticationFilter.
In previous releases, it was provided by the now deprecated properties clientId
and clientSecretId
.
ResourceOwnerOAuth2ClientFilter for services to access resources protected by OAuth 2.0
A new filter ResourceOwnerOAuth2ClientFilter is available for services to access resources protected by OAuth 2.0 using the Resource Owner Password Credentials grant type.
Filters to support OAuth 2.0 client authentication
When processing requests or responses, IG can require access to systems such as the PingOne Advanced Identity Cloud to query user information. The following filters enable OAuth 2.0 client authentication to these systems, where IG is the client:
Use these filters with the following objects:
OAuth 2.0 session sharing across routes
The oAuth2SessionKey
property has been added to
AuthorizationCodeOAuth2ClientFilter
to allow multiple applications to share the same OAuth 2.0 session.
After a resource owner gives one application protected by IG consent to use its data, they don’t need to give consent for another application protected by IG.
In previous releases, the OAuth 2.0 session was bound to the full URI of the client callback containing the IG hostname. It wasn’t possible to use the same OAuth 2.0 session to access different applications.
Circuit breaking
CircuitBreakerFilter
CircuitBreakerFilter is a new filter to monitor for failures. When the failures reach a specified threshold, the CircuitBreakerFilter prevents further calls to downstream filters and returns a runtime exception.
Circuit breaker in ClientHandler and ReverseProxyHandler
A new property circuitBreaker
has been added to ClientHandler
and ReverseProxyHandler
to provide a circuit breaker service when the number of failures reaches a configured threshold.
Stability
JwtBuilderFilter produces encrypted JWT
The JwtBuilderFilter now produces encrypted JWTs, as well as unsigned JWTs, signed JWTs, and signed then encrypted JWTs.
JwtSession cookie compression
The property useCompression
has been added to JwtSession.
When a session stores large items like tokens,
use the default value true
to reduce size of the cookie that stores the JWT.
Other
Windows start script for IG in standalone mode
A script is now provided to start IG in standalone mode on Windows.
Stop scripts for IG in standalone mode
Scripts are now provided to stop IG in standalone mode on Unix/OS X and Windows.
IG_OPTS
environment variables for startup
IG_OPTS
is a new environment variable to separate Java runtime options for
IG startup and stop scripts with IG in standalone mode.
Use IG_OPTS
instead of JAVA_OPTS
for all options that aren’t shared with the stop script.
SNI to serve different certificates for TLS Connections to different server names
In ServerTlsOptions, sni
is a new property
to serve different secret key and certificate pairs for TLS connections to different server names in the deployment.
In previous releases, only the keyManager
property was available
to serve the same secret key and certificate pair for TLS connections to all server names.
Use this property when IG is acting server-side, or to front multiple services or websites on the same port of a machine.
IG proxies all WebSocket subprotocols by default
In previous releases, for IG in standalone mode it was necessary to list the WebSocket subprotocols
IG proxied using the vertx
property of
admin.json.
IG now proxies all WebSocket subprotocols by default; it isn’t necessary to specify protocols. If you do specify protocols, IG supports only those protocols and no others.
Configurable conditions for retries in ClientHandler and ReverseProxyHandler
condition
is a new property in the retries
configuration of ClientHandler and ReverseProxyHandler.
Use this property to configure a condition on which to trigger a retry.
In previous releases, a retry could be triggered only for runtime exceptions.
User ID in audit logs
Audit logs can now include a user ID. Example scripts and setup information is provided in Recording user ID in audit events.
Tracking ID logged in access audit events
In routes containing an OAuth2ResourceServerFilter, OAuth 2.0 token tracking IDs are now logged in access audit events.
Transformation from string to placeholder string
The $string
transformation has been added to facilitate the transformation from a string
to a placeholder string that isn’t encoded.
Use this transformation for placeholder strings that mustn’t be encrypted when they reference a secret value.
Learn more in string in Token Transformation.
Use expressions to configure paths in UriPathRewriteFilter
The mapping
object in UriPathRewriteFilter now uses configuration expressions to define the fromPath
and toPath
.
In previous releases, the mapping
object was a static JSON map.
Learn more in UriPathRewriteFilter.
PolicyDecisionContext includes actions from the policy decision response
Actions from the AM policy decision response are now available for use in the PolicyDecisionContext.
The resource value used when making the policy request is now available in the PolicyDecisionContext.
AmService detects AM version
AmService now reads the AM version from the AM endpoint
and uses the discovered version instead of the value configured in the AmService property version
.
The property version
is used only if the AmService can’t discover the AM version.
Certificate issued by a trusted CA for any hostname or domain is accepted for a connection to any domain
When IG is acting as a WebSocket proxy and the downstream application is on HTTPS,
the WebSocket configuration host can now allow a certificate issued by a trusted CA for any hostname or domain
to be accepted for a connection to any domain.
Learn more in the documentation for the hostnameVerifier
property of
ClientTlsOptions.
Product information in startup logs
Key product information, such as the product version and build number, is now included in the startup logs.
Improved error handling in ScriptableFilter and ScriptableHandler
The ScriptableFilter and ScriptableHandler now propagate script exceptions as runtime exceptions in the promise flow. In previous releases, they replaced the exception with a response with HTTP status 500. Users didn’t know if the response was from the requested endpoint or caused by an exception in the chain.
AmService Websocket connections protected from timeout
A heartbeat can be configured for the AmService WebSocket notification service to prevent Websocket connections from being closed for timeout.
Timeout of idle AM sessions
A new filter, AmSessionIdleTimeoutFilter, is available to force the revocation of AM sessions that have been idle for a specified timeout.
Use this filter in front of a SingleSignOnFilter or CrossDomainSingleSignOnFilter to manage idle timeout for client sessions in AM.
Proxy configuration can be created in the heap and used for AM notifications
A new ProxyOptions heaplet is available to define a proxy to which a ClientHandler or ReverseProxyHandler can submit requests. An AmService can use it to submit Websocket notifications.
A new global ProxyOption heap object is provided.