Release Notes
Unless otherwise noted, all of the following enhancements, known issues, and resolved issues apply to the PingDirectory server, the PingDirectoryProxy server, and the PingDataSync server.
Subscribe to get automatic updates: PingDirectory Release Notes RSS feed
PingDirectory suite of products 10.3.0.0 (July 2025)
Removed support for Java 11
Info DS-49541 PingDirectory, PingDirectoryProxy, PingDataSync
Support for Java 11 has been removed. You must be running Java 17 or a later supported version, as detailed in the System requirements. Learn more about upgrading a PingDirectory server running Java 11 in Considerations when upgrading to version 10.3.
Support for Internet Explorer 11 has been deprecated
Info PingDirectory, PingDirectoryProxy, PingDataSync
Support for Internet Explorer 11 has been deprecated and will be removed in a future release.
Support for the sync-pipe-view
tool has been deprecated
Info PingDataSync
Support for the sync-pipe-view
tool has been deprecated, and the tool will be removed in a future release.
Added user entry forwarding for easier request authorization
New DS-49681 PingDirectory, PingDirectoryProxy
We added a mechanism to forward the authenticated user’s entry to backend servers in an entry-balanced proxy configuration. This change makes it easier to authorize requests in backend sets that don’t contain the user’s entry.
You can use this mechanism instead of the authz-dn
property in the entry-balancing request processor configuration or the ds-authz-map-to-dn
operational attribute in user entries, which are both used to map requests as the authenticated user to a different surrogate user in the other backend sets.
Learn more in Forwarding authorization identities in requests.
Added REST API request controls for soft and hard deletes
New DS-49530 PingDirectory
We added support for the following HTTP request controls in the Directory REST API:
- Soft delete
-
Used to soft-delete entries
- Hard delete
-
Overrides automatic soft-delete policies and performs a full hard delete
- Soft-deleted entry access
-
Used to read or search soft-deleted entries
- Undelete
-
Restores soft-deleted entries to their normal state
Learn more in the Directory REST API documentation.
Added support for the HAProxy PROXY protocol
New DS-43335 PingDirectory, PingDirectoryProxy
We added support for LDAP and LDAPS clients accessing the server through a software load balancer using the PROXY protocol, which allows the server to see the actual address and port of the end client system rather than just the address of the load balancer.
The server supports LDAP clients using TCP over IPv4 or IPv6 with header versions 1 and 2. It also accepts valid PROXY protocol headers with other protocols and address families, but it only updates the client address and port for TCP-based clients.
Learn more in Using the HAProxy PROXY protocol.
Added support for a Thales HSM plugin
New DS-48531 PingDirectory
We added support for a Thales HSM plugin, which is available as a separate download. To get the plugin, contact your Ping Identity account representative.
More efficient server handling of failed authentication attempts
Improved DS-49418 PingDirectory
We changed the default server behavior for failed authentication attempts to unavailable user accounts. If a user’s account becomes unavailable (for example, because the account is locked, disabled, or the password has expired), the server won’t update the user’s recent login history for failed authentication attempts.
This change can prevent excessive write operations to a user entry in cases where the user can’t possibly authenticate, including when accounts could be subject to password guessing or denial-of-service attacks.
Encoded password caching improved for frequently used passwords
Improved DS-49516 PingDirectory
We improved the eviction logic for encoded password caches to help ensure that frequently used passwords remain cached. When a cache becomes full and needs to add a record, the server evicts the least-recently-used record to make room. Previously, the server evicted the oldest record from the cache.
Smarter dsreplication initialize
failure behavior
Improved DS-48158 PingDirectory
We improved the dsreplication initialize
failure behavior for source backends supplied in a JSON topology file.
A backend must be enabled before it can be initialized. If dsreplication initialize
doesn’t successfully initialize the target backend from one source, the command re-enables the target backend before attempting to initialize it from the next source in the JSON file.
Exclude virtual attributes to streamline reversible delete audit logging
Improved DS-49377 PingDirectory
We added a configuration property for the file-based audit log publisher that can exclude virtual attributes from delete audit log records that use the reversible form of logging.
Excluding virtual attributes reduces the size of these log messages and can eliminate the potential performance impact of computing their values. Virtual attributes are still included by default in delete audit log messages generated by the regular file-based audit logger, but they are now suppressed by default in the data recovery log.
Made it easier to update FIPS compliance levels
Improved DS-49550 PingDirectory, PingDirectoryProxy, PingDataSync
We updated manage-profile replace-profile
to allow changing the value of the --fips-provider
argument in setup-arguments.txt
from BCFIPS
to BCFIPS2
. This makes it possible to update an existing instance running in FIPS 140-2 compliance mode to use FIPS 140-3 compliance mode.
Added FIPS-compliance information to monitor entries
Improved DS-49731 PingDirectory, PingDirectoryProxy, PingDataSync
We updated the Version and SSL Context monitor entries to always include the fips-compliant-mode
,
fips-140-2-compliant-mode
, and fips-140-3-compliant-mode
attributes, even when the server is running in non-FIPS-compliant mode. We also exposed those attributes in the Version monitor entry in the admin console’s Status section.
Added on-demand LDAP connection pool creation
Improved DS-49944 PingDirectory, PingDirectoryProxy, PingDataSync
We added an option to allow LDAP external servers to create connection pools without any initial connections so that all connections for use in the pool are created on demand. This can help make it faster to initialize components that use one or more LDAP external servers, but initial attempts to communicate with those servers could take longer as a result of needing to establish new connections.
Clearer attribute parsing for the Processing Time Histogram plugin
Improved DS-49558 PingDirectory, PingDirectoryProxy
We added the include-parseable-attribute-names
option to the Processing Time Histogram plugin to output
entries in a format that’s easier to parse. These reformatted entries are duplicates and still exist in their original
format. Changing this option requires a server restart to take effect.
Improved server setup when using a profile
Improved DS-50069 PingDirectory
We added the --skipImportLdif
argument to manage-profile setup
. You can supply this argument
to set up a server without importing any LDIF files contained in the profile directory structure.
Fixed a server installation issue with Java 17 and Red Hat
Fixed DS-49716 PingDirectory, PingDirectoryProxy, PingDataSync
We fixed an issue that could prevent installing or running servers using Java 17 or later on Red Hat Enterprise Linux (RHEL) systems when the operating system itself is configured to run in FIPS-compliant mode.
This operating system setting is unrelated to whether the PingDirectory server has been set up to run in FIPS-compliant mode.
Fixed replication behavior for listen-on-all-addresses
Fixed DS-49547 PingDirectory
We fixed the replication server configuration property listen-on-all-addresses
so that when the property is set to false
, replication servers only listen to the replication port on the interface that corresponds to the hostname of the server instance for that replication server.
Fixed an issue with replication assurance for some password updates
Fixed DS-49851 PingDirectory
We fixed an issue where replication assurance wasn’t applied to the internal operation performed by the password modify extended operation.
Fixed an issue with dsreplication enable
Fixed DS-35915 PingDirectory
We fixed a bug where dsreplication enable
ignored the --noPropertiesFile
option and incorrectly applied options from the tools.property
file.
Fixed the failure behavior for dsreplication initialize
Fixed DS-49890 PingDirectory
We fixed an issue where a PingDirectory server would continue sending binary data
to the destination server after a failed attempt to initialize using dsreplication initialize
.
This behavior interfered with further initialization attempts from any other server.
Fixed a replace-certificate
trust store issue
Fixed DS-44645 PingDirectory, PingDirectoryProxy, PingDataSync
We fixed an issue that prevented the replace-certificate
tool from using the JVM-default trust store when replacing the listener certificate in interactive mode.
Fixed a replace-certificate
argument issue
Fixed DS-49769 PingDirectory, PingDirectoryProxy, PingDataSync
We fixed an issue where replace-certificate replace-listener-certificate
didn’t obey the
--trust-store-update-type
argument.
Fixed an issue with some password resets
Fixed DS-50108 PingDirectory, PingDirectoryProxy
We fixed an issue where password resets done with the bypass-pw-policy
privilege would circumvent the
force-change-on-reset
property of password policies.
Fixed an issue with the Modifiable Password Policy State plugin
Fixed DS-49878 PingDirectory
We fixed an issue where the Modifiable Password Policy State plugin didn’t obey the value of the filter
property.
Fixed an issue with the Entry Counter plugin
Fixed DS-49872 PingDirectory
We fixed an issue where the Entry Counter plugin couldn’t evaluate criteria filters against virtual attributes with
require-explicit-request-by-name
set to true
.
Restored the ability to modify an enabled Entry Counter plugin
Fixed DS-49816 PingDirectory
We fixed an issue with the Entry Counter plugin where an enabled plugin couldn’t be modified.
Fixed an issue with the Monitor History plugin preserving files
Fixed DS-46253 PingDirectory, PingDirectoryProxy, PingDataSync
We fixed an issue where the Monitor History plugin wouldn’t preserve files for longer than 14 days when
retain-files-sparsely-by-age
was set to true
.
Fixed a SCIM issue with modifying ds-pwp-modifiable-state-json
Fixed DS-49781 PingDirectory
We fixed an issue where SCIM requests that attempted to modify the ds-pwp-modifiable-state-json
attribute would fail.
Fixed SCIM response errors
Fixed DS-48511 PingDirectory, PingDirectoryProxy
We fixed an issue with inconsistencies in id-attribute
values returned in SCIM operation responses.
We also fixed an issue with SCIM GET operations where a filter used to search for an entry would result in a 404 error.
Fixed a SCIM 2.0 PUT issue with attribute values
Fixed DS-49619 PingDirectory
We fixed an issue where SCIM 2.0 PUT operations involving multivalued complex attributes would incorrectly remove some of the values.
Fixed a REST API issue with failed PUT requests
Fixed DS-49912 PingDirectory
We fixed an issue in the REST API where PUT requests would return a 500 response when attempting to replace the value of a virtual attribute.
Fixed an issue with allowed REST API syntax violations
Fixed DS-46314 PingDirectory
We fixed an issue where REST API calls failed due to attribute syntax violations, even though the server had been configured to allow syntax violations for those attributes.
Added a missing debug type to LDAP SDK logging
Fixed DS-43814 PingDirectory, PingDirectoryProxy
We added the missing connection-pool
debug type to the server’s support for LDAP SDK debug logging.
Suppressed inaccurate server startup warnings
Fixed DS-49991 PingDirectory
We suppressed inaccurate server startup warning messages about some Apache commons-logging
classes being scanned
from multiple locations. The scan detected older versions of those classes packaged inside a Spring JCL .jar
file
needed by the admin console, but the older versions aren’t loaded at runtime.
Fixed an internal error logged at server restart
Fixed DS-49551 PingDirectory
We fixed a null pointer exception error logged when restarting a PingDirectory server configured with Delegated Admin.
Fixed a Delegated Admin memory leak
Fixed DS-49409 PingDirectory
We fixed an issue where Delegated Admin could leak memory due to unfinalized memory consumers.
Fixed a topology issue related to removing defunct servers
Fixed DS-49700 PingDataSync
We fixed an issue where the remove-defunct-server
tool could leave a PingDataSync topology in a state where new servers couldn’t be added.
Fixed an issue with password sync from Active Directory
Fixed DS-50043 PingDataSync
We fixed an issue where password synchronization from multiple Active Directory subdomains through multiple sync pipes could fail abruptly.
Excluded some password attributes from sync sources
Fixed DS-49212 PingDataSync
We changed the resync
tool to exclude unicodePwd
automatically from
AD sync sources and password
from PingOne sync sources.
By design, the resync
tool updates the existing values for included
attributes at the destination to match what’s found at the source.
If resync
can’t retrieve an attribute value at the source, it removes
any existing values at the destination. Because resync
can’t retrieve
these password attributes from their sources, we’ve excluded them from
the attributes for resync
consideration to avoid disrupting the values
at the destination.
You can still include these attributes manually in a resync
operation by
providing the --includeSourceAttr
argument.
Fixed an issue with logging changes to some attributes
Fixed DS-49917 PingDataSync
We fixed an issue where PingDataSync would log an operation as not applied if the only changes applied were to password policy state attributes.
Fixed an issue with third-party change detectors
Fixed DS-49035 PingDataSync
We fixed an issue where third-party change detectors didn’t properly persist the state of processing at the sync source.
This could’ve caused change detector malfunctions with the set-startpoint
task,
with saving the change detector’s state upon server shutdown, or with communicating that state to failover instances.
Fixed an issue with the SDK LDAP sync destination plugins
Fixed DS-49854 PingDataSync
We fixed an issue in the server SDK’s example LDAP sync destination plugins, where the plugins dropped modify DN operations that didn’t affect the RDN.
Communication error during replication prevents initialization
Issue DS-50171 PingDirectory
If dsreplication initialize
fails because of a communication error between the source PingDirectory server and the
remote destination server, the source server continues attempts to send binary data.
This causes new initialization attempts on the destination server from any other server to fail until the
source server has finished sending all data.
To work around this issue, restart the source PingDirectory server.