PingAuthorize

Release Notes

New features and improvements in PingAuthorize. Updated December 13, 2024.

Subscribe to get automatic updates: PingAuthorize Release Notes RSS feed

Latest releases

PingAuthorize 10.2 (December 2024)

Deprecated support for Java 11

Info PAZ-16269

Support for Java 11 has been deprecated. PingAuthorize 10.3 and later will not support Java 11. To prevent problems when upgrading PingAuthorize, you should upgrade to Java 17. Learn more in System requirements.

Custom SDK extensions using Javax packages will need to be migrated and recompiled in 10.3

Info

Several components will be upgraded in version 10.3 of PingAuthorize. If any of your custom Server SDK extensions have classes that import javax.* packages, you will need to migrate them to the equivalent jakarta.* packages and then recompile the extensions.

Advanced OAuth Settings for HTTP services

New PAZ-16062

For HTTP services using the OAuth 2.0 (Client Credentials) grant type for authentication, we added the ability to include custom key-value pairs as additional parameters in the body of token endpoint requests. This level of customization is useful when integrating with authorization servers that enforce specific configuration constraints. Learn more in HTTP authentication methods.

Added a new policy query response view

New PAZ-12855

To provide enhanced visibility into the logic underlying policy query responses, we added support for a new unfiltered policy query response view. This view includes every decision used to compose the final policy query response, regardless of the outcome or the presence of statements. Learn more in Configuring query response granularity.

Added debug logging for policy query requests

New PAZ-12855

We added debugging capabilities for policy query audit logging in the PingAuthorize Server and the Policy Editor. Enabling debug logging brings enhanced visibility to the attribute data and policy dependencies involved in policy query responses. Learn more in Policy query logging.

Added ability to customize policy query debug log views

New PAZ-16050

For policy query audit logs with debug logging enabled, we added the ability to specify additional levels of detail to include in each query permutation’s response field. This level of customization enables you to increase or decrease visibility into query requests and responses in both development and production environments. Learn more in Configuring the query permutation view.

Added support for attribute logging to policy query responses

New PAZ-16050

You can now exercise control over which attributes get logged as part of policy query responses in embedded or external PDP mode. This configuration logs full details of the specified attributes when they’re evaluated as part of the policy query request.

Added support for Mapped Diagnostic Context

New PAZ-13188

We added support for Mapped Diagnostic Context (MDC) capabilities in PingAuthorize Server and Policy Editor logging. MDC enriches log messages with additional request context, enabling you to diagnose issues across application components. Learn more in Enabling Mapped Diagnostic Context for Policy Editor logs.

MDC logging is enabled by default in the PingAuthorize Server for the File-based Trace Log Publisher.

Added support for a new signature algorithm

New PAZ-13089

We added support for Elliptic Curve Digital Signature Algorithm (ECDSA)-encoded signatures for JWT tokens when using the Has Valid Signature For JWKS and Has Invalid Signature For JWKS attribute comparators. Learn more in Conditions.

Added native support for decision-point-spel-functions

New PAZ-15718

We added the decision-point-spel-functions library to the PingAuthorize Server distribution. These functions add native capabilities for collection, datetime, and URI processing with SpEL.

Added support for Camel 3.22.2

New PAZ-15845

Although Camel services have been removed from the default PingAuthorize configuration, you can now use Camel version 3.22.2 if your policies depend on such services. Learn more in Enabling Camel service connections.

Added key and trust manager caching

New DS-49135

We added the ability to cache key managers and trust managers to prevent loading keystore and truststore files from disk when establishing connections to process requests. Use the enable-key-manager-caching and enable-trust-manager-caching configuration properties to enable or disable caching. Learn more in Caching key and trust managers.

Improved policy query error handling

Improved PAZ-12527

We improved and standardized error handling for requests sent to the JSON PDP API’s governance-engine/query endpoint.

Made it easier to resolve policy query attributes

Improved PAZ-12724

When making a policy query request, you might want to use a single-valued attribute to resolve a query attribute. Now, you can include this single-valued attribute in the query section rather than the context section of the JSON PDP API request.

Allowed proxied requests for HTTP external servers

Improved DS-48729

We updated the PingAuthorize Server’s HTTP external server configuration to allow requests to be forwarded through an HTTP proxy server.

Fixed an issue with Policy Query API responses

Fixed PAZ-12752

We fixed an issue where the same request sent to the JSON PDP API’s governance-engine/query endpoint could produce inconsistent responses.

Fixed an issue with testing large elements

Fixed PAZ-11133

We fixed an issue where running test scenarios that exceeded 50 kB in size would produce the following error: Failed to execute 'setItem' on 'Storage': Setting the value of 'xxx' exceeded the quota.

Now, although test scenarios of this size will still execute, these scenarios will not be stored in the Policy Editor’s local cache. Learn more in Testing policies.

Fixed an issue with redundant policies when using the Policy Editor Management API

Fixed PAZ-12166

We fixed an issue where creating a copy of an existing policy with the Policy Editor Management API would generate a redundant copy of that policy. This occurred because the version ID of the original policy was supplied in the POST request to create the policy copy. With this fix, users can no longer provide a version ID when creating a new policy.

Fixed an issue with the Policy Editor login screen

Fixed PAZ-2355

We fixed an issue where the Policy Editor login screen was incorrectly aligned on displays with insufficient vertical height.

Fixed a performance issue with policy queries

Fixed PAZ-16415

We fixed an issue where policy query responses were constructed with an excessively broad response view, causing performance issues.

Fixed an issue with merging branches

Fixed PAZ-15930

We fixed an issue that would cause false conflicts when merging policy branches in the Policy Editor.

Fixed a Policy Editor sign-off issue

Fixed PAZ-16253

We fixed an issue that would prevent complete sign-off from the Policy Editor when using the Authorization Code with PKCE grant type.

Fixed an issue with the Decision Visualizer

Fixed PAZ-11767

We fixed an issue where pasting an audit log entry without the decisionTree or evaluationLog field into the Policy Editor’s Decision Visualizer would incorrectly return a Cannot read properties of undefined (reading 'create') error in addition to a decisionTree or evaluationLog must be enabled to visualize decision tree error.

Fixed an issue with deployment package store requests

Fixed PAZ-16140

We fixed an issue with the PingAuthorize Server that caused logs and monitors to make requests to deployment package stores more frequently than the configured polling interval, causing performance issues.

Changed the collect-support-data monitor file behavior

Fixed DS-47384

For the PingAuthorize Server, we changed the collect-support-data tool to use the latest monitor-history file if it can’t find ldap/monitor.ldif when exchanging monitor data.

Fixed an issue with Promotheus HTTP servlet error messages

Fixed DS-49161

We fixed an issue with the PingAuthorize Server where the Prometheus HTTP servlet would publish an excessive number of error messages to the error log when it lost connection to its remote counterpart.

Fixed an issue with config-diff

Fixed DS-49071

We fixed an issue with the PingAuthorize Server where running the config-diff tool would result in an Unknown property error when comparing configuration objects of different types.

Removed suppression messages for disabled alerts

Fixed DS-49119

We fixed an issue with the PingAuthorize Server where alert types that were disabled would still output suppression messages.

PingAuthorize 10.1.0.2 (September 2024)

Added a new policy query response view

New

We added support for a new unfiltered policy query response view. This view includes every decision used to compose the final query response, regardless of the outcome or the presence of statements. Learn more in Configuring query response granularity.

Added policy query debug logging

New

We added debugging capabilities for policy query audit logging. Enabling the DEBUG log level brings enhanced visibility to the attribute data and decision logic underlying query responses. Learn more in Troubleshooting policy queries.

Added support for Mapped Diagnostic Context

New

We added support for Mapped Diagnostic Context (MDC) capabilities in logging. MDC enriches log messages with additional request context, enabling you to diagnose issues across application components. Learn more in Enabling Mapped Diagnostic Context for Policy Editor logs.

Added support for a new signature algorithm

New

We added support for Elliptic Curve Digital Signature Algorithm (ECDSA)-encoded signatures for JWT tokens when using the Has Valid Signature For JWKS and Has Invalid Signature For JWKS attribute comparators. Learn more in Conditions.

Improved policy query error handling

Improved

We improved and standardized error handling for requests sent to the governance-engine/query endpoint.

Improved resolution of query attributes

Improved

When making a policy query request, you might want to use a single-valued attribute to resolve a query attribute. Now, you can include this single-valued attribute in the query section, rather than the context section of the request.

Fixed an issue with Policy Query API responses

Fixed PAZ-12752

We fixed an issue where the same request sent to the governance-engine/query endpoint could produce inconsistent responses.

Fixed an issue with the Decision Visualizer

Fixed PAZ-11767

We fixed an issue where pasting an audit log entry without the decisionTree or evaluationLog field into the Decision Visualizer would incorrectly return a Cannot read properties of undefined (reading 'create') error in addition to a decisionTree or evaluationLog must be enabled to visualize decision tree error.

Fixed a memory leak issue

Fixed PAZ-13013

We fixed an issue where, when using the PingAuthorize Server’s API security gateway in embedded PDP mode, policy decision logging could cause a memory leak and negatively impact the performance of long-running server instances.

Fixed an issue with config-diff

Fixed DS-49071

We fixed an issue where config-diff would result in an Unknown property error when comparing configuration objects of different types.

PingAuthorize 10.1 (June 2024)

Make real-time data calls to relational databases

New

We added a new Database service type, enabling you to use relational databases as policy information points (PIP) during policy development. Services retrieve information from external data sources for use in context-aware authorization decisions. Now, you can dynamically query and transform such information from relational databases. Learn more in Database services.

Implement third-party decision log publishers with the PingData Server SDK

New

We added a new Policy Decision Logger extension to the Server SDK for developing third-party decision log publishers. This extension enables you to configure custom decision logging behavior and log destinations. You can extend the provided PolicyDecisionLogger API in the Server SDK to implement your custom logic. Learn more in Managing Server SDK Extensions and the doc/getting-started directory in your SDK download.

Map decision request headers to Trust Framework attributes

New

We added the ability to map headers of incoming JSON PDP API requests to Trust Framework attributes. PingAuthorize uses these mappings to dynamically populate attribute values with the values of incoming request headers, enabling you to leverage header data as decision context in request bodies. Learn more in Configuring policy request header mappings.

Determine whether service call results were retrieved from cache

New

We added the ability, for any call to external services with caching enabled, to determine whether the result of that call was retrieved from the cache. Learn more in Service caching.

Enable Camel service connections with the command line

New

We added the ability to enable Camel service connections in the Policy Editor with the command line. To ensure that Camel is used with the appropriate permissions and security controls, Camel services are disabled by default in the Policy Editor. Now, instead of manually updating the Policy Editor’s configuration, you can enable Camel service connections with the --enableCamelService option in non-interactive setup mode. Learn more in Enabling Camel service connections.

Enable JSON formatting for default Policy Editor loggers

New

We added support for the dropwizard-json-logging library to the default Policy Editor loggers. Now, you can add this library in the Policy Editor’s configuration.yml file to each logger stream you wish to enable JSON formatting for. The availability of this library does not impact the application’s default configuration. Learn more in Enabling JSON formatting for Policy Editor logs.

Added support for new platforms

New

We added support for Rocky Linux 9.3 and Red Hat Enterprise Linux 9.3. Learn more in System requirements.

Improved database service security

Improved

To address the possibility of remote code execution attacks with H2 database services, we made the database driver allow list configurable and unlisted H2 by default. Learn more in Database services.

Updated default configuration archive maximum

Info

To mitigate the performance impact of large archives, we updated the configuration archive to keep a maximum of 100 previous configurations by default

Fixed an issue with creating copies of policies

Fixed PAZ-12150

We fixed an issue where, in some cases, copying a policy created a redundant instance of that policy.

Fixed an issue with Library statement duplication

Fixed PAZ-9092

We fixed an issue where copying a rule containing a Library statement would create a new instance of that statement instead of reusing the existing one.

Fixed an issue with saving LDAP services

Fixed PAZ-12017

We fixed an issue where, after enabling caching for an LDAP service, specifying a Time to Live (TTL), and clicking Save, the specified TTL disappeared from the UI and backend configuration.

Fixed an issue with HTTP service requests

Fixed PAZ-12145

We fixed an issue where, when making HTTP service calls, the policy decision point would incorrectly assign default values to the request body and the content-type header.

Fixed an issue with self-governance decision requests

Fixed PAZ-3306

We fixed an issue where, when using an imported policy snapshot, self-governance decision requests were missing values in the action field.

Fixed an issue with Policy Query API responses

Fixed PAZ-12245

We fixed an issue where, when sending a Policy Query API request with an unbounded attribute in the query array, the system would return a 500 error status code if the unbounded attribute’s value was resolved to an empty collection.

Fixed an issue with the CLI tools reference

Fixed PAZ-3469

We fixed an issue where the CLI tools reference page was incorrectly titled Configuration Reference. Now, the page is correctly titled CLI Tools Reference.

Fixed an issue with the comparators list

Fixed PAZ-11768

We fixed an issue where, when creating rules in the Policy Editor, the comparators list extended outside of the list area, preventing you from scrolling through the list.

Fixed an issue with unnamed Trust Framework elements

Fixed PAZ-12150

We fixed an issue where a user could leave new elements defined in the Trust Framework unnamed, giving them a default name of Untitled. Now, you must specify a name for such elements before saving them.

Fixed an issue with copying Policy Editor elements

Fixed PAZ-12150

We fixed an issue where Policy Editor elements created as copies would inherit the version ID of the original element. As a result, copies of elements would persist in the Policy Editor UI after being deleted but would return 404 errors when selected. Now, copies of Policy Editor elements have distinct version IDs.

Fixed an issue with HTTP service log messages

Fixed PAZ-12454

We fixed an issue where the status field of an HTTP service log message would include a status message, such as OK, rather than a status code.

Fixed an issue with PIP key store service calls

Fixed PAZ-12014

We fixed an issue where, when making a service call with a PIP key store for MTLS configured and the Server (TLS) option set to None or Default, the service would incorrectly return a Client TLS certificate is required error.

PingAuthorize 10.0.0.4 (October 2024)

Fixed a PingAuthorize Server performance issue

Fixed PAZ-13013

We fixed an issue where, when using PingAuthorize Server’s API security gateway in embedded PDP mode, policy decision logging could cause memory leaks and negatively impact the performance of long-running server instances.

Fixed a config-diff error

Fixed DS-49071

We fixed an issue where config-diff would result in an Unknown property error when comparing configuration objects of different types.

Fixed an alert types issue

Fixed DS-49119

We fixed an issue where alert types that were disabled would still produce suppression messages.

PingAuthorize 10.0.0.3 (July 2024)

Fixed an issue with HTTP service requests

Fixed PAZ-12145

We fixed an issue where, when making HTTP service calls, the policy decision point would incorrectly assign default values to the request body and the content-type header.

Fixed an issue with unbounded query attributes

Fixed PAZ-12245

We fixed an issue where, when sending a Policy Query API request with an unbounded attribute in the query array, the system would return a 500 error status code if the unbounded attribute’s value was resolved to an empty collection.

Fixed an issue with Policy Query API responses

Fixed PAZ-12752

We fixed an issue where the same request to the Policy Query API could produce inconsistent responses.

Fixed an issue with HTTP service log messages

Fixed PAZ-12454

We fixed an issue where the status field of an HTTP service log message would include a status message, such as OK, rather than a status code.

Fixed an issue with PIP key store service calls

Fixed PAZ-12014

We fixed an issue where, when making a service call with a PIP key store for MTLS configured and the Server (TLS) option set to None or Default, the service would incorrectly return a Client TLS certificate is required error.

PingAuthorize 10.0.0.2 (March 2024)

Fixed a header exclusion issue with HTTP service caching

Fixed STAGING-22303

We fixed an issue with the exclusion of certain headers from the cache key of cached HTTP service responses. Now, each change to these header values no longer invalidates the service response cache, and the decision engine isn’t forced to invoke the service again on subsequent requests.

Fixed a header display issue with HTTP service caching

Fixed PAZ-11726

We fixed an issue with the display of headers excluded from cached HTTP service responses in the Trust Framework. Now, you can navigate away from an HTTP service with caching enabled, navigate back to that service, and still see the excluded headers you originally defined.

PingAuthorize 10.0.0.1 (January 2024)

Version incremented for administrative purposes

Info

The PingAuthorize version number was incremented due to changes released for PingDirectory. There are no release notes for this version of PingAuthorize.

PingAuthorize 10.0 (December 2023)

Send more flexible decision requests with policy queries

New

With the new Policy Query API, you can now issue decision requests containing valueless and multivalued attributes to receive decisions more complex than Permit or Deny, enabling you to dynamically drive user interfaces. For more information, see Policy queries.

Cache dynamic service responses

New

To improve decision evaluation performance and reduce latency, you can cache dynamic service response values for faster retrieval on subsequent requests. When enabling caching for HTTP services, you can exclude certain headers from the service response. This prevents invalidation of the cache when values of those headers change. For more information, see Service caching.

Copy Trust Framework attribute resolvers

New

To build your authorization logic more efficiently, you can make editable copies of attribute resolvers. For more information, see Copying elements.

Disable rules in the policy tree

New

To control the granularity of policy evaluation, you can disable rules in policies. This causes the decision engine to skip disabled rules during policy evaluation and allows you more flexibility in testing and deployment of policy logic. For more information, see Creating policies and policy sets.

Added support for Apache Camel 3.21.2

Info

Although Camel services have been removed from the default PingAuthorize configuration, you can now enable Camel version 3.21.2 if your policies depend on such services. For more information, see Apache Camel availability.

Added support for Java 17 and removed support for Java 8

Info

We have added support for Java 17 and removed support for Java 8. For more information, see System requirements. For information on upgrading from a PingAuthorize instance installed with Java 8, see Upgrade considerations introduced in PingAuthorize 10.0.

Disabled SNI hostname checks by default

Info PAZ-10754

To avoid HTTP 400 responses when SNI hostname checks fail, these checks are now disabled by default for the PingAuthorize server and Policy Editor. We added a new setup option, --disableSniHostnameChecks, to control whether PingAuthorize performs this check. For important considerations when upgrading from a previous version and attempting to reuse your configuration, see Upgrade considerations introduced in PingAuthorize 10.0.

Disabled OIDC Implicit grant flow

Info PAZ-1795

We have disabled the OIDC Implicit flow implementation in the Policy Editor because the OAuth Working Group no longer recommends its use. In its place, you should use the Authorization Code with PKCE flow. For more information, see Configuring an OIDC provider for single sign-on requests from PingAuthorize.

Added indexes to improve database query performance

Improved

We added two database indexes to the db-cli module to improve performance when querying the CurrentEntityVersion and EntityRelationship tables.

Fixed SCIM case-sensitivity issue

Fixed PAZ-8473

We fixed an issue where requests to create SCIM entries were not always observing the case-exact=false property, leading to incorrect case-sensitivity errors.

Fixed attribute caching memory error

Fixed PAZ-10643

We fixed an issue where the decision engine only checked if an attribute cache entry had expired when accessing that entry, leading to Out of Memory errors. Now, attribute caching uses the Redis library directly, allowing a unique Time to Live (TTL) for each cache entry. Redis instances invalidate cache entries once the TTL has elapsed, rather than when the entries are accessed. For more information, see Attribute caching.

Fixed missing statements array in policy testing

Fixed PAZ-6335

We fixed an issue, where, in the Response tab of policy testing, the root-level statements array was not appearing if left empty in the testing scenario.

Fixed error response handling in APP WARN

Fixed PAZ-10350

We fixed an issue where the HTTP Service Executor was not properly capturing error messages in the APP WARN logs from the policy information provider (PIP) endpoint.

Removed --serverRoot requirement from the check-replication-domains tool

Fixed DS-47655

We fixed the check-replication-domains tool so that the --serverRoot argument is no longer required. This argument now defaults to the server’s root directory.

Fixed duplication issue when running dsjavaproperties --initialize

Fixed DS-45206

We fixed an issue where running dsjavaproperties --initialize would append duplicate arguments to the common.java-args in the java.properties file.

Replaced NullPointerException error for alert handlers lacking configuration

Fixed DS-47455

We fixed an issue where a NullPointerException error occurred when an alert or alarm was raised, and one more of the alert handlers was not configured. An alert notification is now recorded in logs/errors instead.

Addressed inability of LDAP Request Handlers to respond to incoming client requests

Fixed DS-46312

We fixed an issue where TLS timeouts prevented LDAP Request Handlers from responding to client requests. The request-handler-per-connection configuration property is now available for LDAP and LDAPS Connection Handlers.

Previous Releases

For information about enhancements and issues resolved in previous major and minor releases of PingAuthorize, follow these links to their release notes: