UnboundID LDAP SDK for Java 6.0.9
We have just released version 6.0.9 of the UnboundID LDAP SDK for Java. It is available for download from GitHub and SourceForge, and it is available in the Maven Central Repository.
As announced in the previous release, the LDAP SDK source code is now maintained only at GitHub. The SourceForge repository is still available for its discussion forum, mailing lists, and release downloads, but the source code is no longer available there.
You can find the release notes for the 6.0.9 release (and all previous versions) at https://docs.ldap.com/ldap-sdk/docs/release-notes.html, but here’s a summary of the changes:
-
We made it possible to customize the set of result codes that the LDAP SDK uses to determine whether a connection may no longer be usable. Previously, we used a hard-coded set of result codes, and that is still the default, but you can now override that using the
ResultCode.setConnectionNotUsableResultCodes
method. -
We added a new
HTTPProxySocketFactory
class that can be used to establish LDAP and LDAPS connections through an HTTP proxy server. -
We added a new
SOCKSProxySocketFactory
class that can be used to establish LDAP and LDAPS connections through a SOCKSv4 or SOCKSv5 proxy server. -
We updated the
ldap-diff
tool to add a--byteForByte
argument that can be used to indicate that it should use a byte-for-byte comparison when determining whether two attribute values are equivalent rather than using a schema-aware comparison (which may ignore insignificant differences in some cases, like differences in capitalization or extra spaces). Previously, the tool always used byte-for-byte matching, but we decided to make it a configurable option, and we determined that it is better to use schema-aware comparison by default. -
We fixed an issue in which a non-default channel binding type was not preserved when duplicating a GSSAPI bind request. We also added a
GSSAPIBindRequest.getChannelBindingType
method to retrieve the selected channel binding type for a GSSAPI bind request. -
We added a
ResultCode.getStandardName
method that can be used to retrieve the name for the result code in a form that is used to reference it in standards documents. Note that this may not be available for result codes that are not defined in known specifications. -
We added a mechanism for caching the derived secret keys used for passphrase-encrypted input and output streams so that it is no longer necessary to re-derive the same key each time it is used. This can dramatically improve performance when the same key is used multiple times.
-
We updated the
StaticUtils.isLikelyDisplayableCharacter
method to consider additional character types to be displayable, including modifier symbols, non-spacing marks, enclosing marks, and combining spacing marks. -
We added a new
StaticUtils.getCodePoints
method that can be used to retrieve an array of the code points that comprise a given string. -
We added a new
StaticUtils.unicodeStringsAreEquivalent
method that can be used to determine whether two strings represent an equivalent string of Unicode characters, even if they use different forms of Unicode normalization. -
We added a new
StaticUtils.utf8StringsAreEquivalent
method that can be used to determine whether two byte arrays represent an equivalent UTF-8 string of Unicode characters, even if they use different forms of Unicode normalization. -
We added a new
StaticUtils.isValidUTF8WithNonASCIICharacters
method that can be used to determine whether a given byte array represents a valid UTF-8 string that contains at least one non-ASCII character. -
We updated the client-side support for the collect-support-data administrative task to make it possible to specify the start and end times for the set of log messages to include in the support data archive.
-
We updated the documentation so that the latest versions of draft-melnikov-sasl2 and draft-melnikov-scram-sha-512 are included in the set of LDAP-related specifications.