---
title: ClientContext
description: Information about the client sending a request. When PingGateway receives a request, it injects information about the client sending the request into this context.
component: pinggateway
version: 2026
page_id: pinggateway:reference:ClientContext
canonical_url: https://docs.pingidentity.com/pinggateway/2026/reference/ClientContext.html
revdate: 2025-06-02T18:01:47Z
section_ids:
  Client-properties: Properties
  Client-moreinfo: More information
---

# ClientContext

Information about the client sending a request. When PingGateway receives a request, it injects information about the client sending the request into this context.

## Properties

The context is named `client`, and is accessible at `${contexts.client}`. The context has the following properties:

* `"certificates"`: *[java.util.List](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/List.html) <[java.security.cert.Certificate](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/cert/Certificate.html)>*

  List of X.509 certificates presented by the client. If the client doesn't present any certificates, PingGateway returns an empty list. Never `null`.

  The following example uses the certificate associated with the incoming HTTP connection:

  ```json
  {
    "name": "CertificateThumbprintFilter-1",
    "type": "CertificateThumbprintFilter",
    "config": {
      "certificate": "${contexts.client.certificates[0]}"
    }
  }
  ```

* `"isExternal"`: *boolean*

  True if the client connection is external.

* `"isSecure"`: *boolean*

  True if the client connection is secure.

* `"localAddress"`: *[java.lang.String](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/String.html)*

  The IP address of the interface that received the request.

* `"localPort"`: *integer*

  The port of the interface that received the request.

* `"remoteAddress"`: *[java.lang.String](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/String.html)*

  The IP address of the client (or the last proxy) that sent the request.

* `"remotePort"`: *integer*

  The source port of the client (or the last proxy) that sent the request.

* `"remoteUser"`: *[java.lang.String](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/String.html)*

  The login of the user making the request, or `null` if unknown. This is likely to be `null` unless you have deployed PingGateway with a non-default deployment descriptor that secures the PingGateway web application.

* `"userAgent"`: *[java.lang.String](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/String.html)*

  The value of the User-Agent HTTP header in the request if any, otherwise `null`.

## More information

[org.forgerock.services.context.ClientContext](../_attachments/apidocs/org/forgerock/services/context/ClientContext.html)
