The JNDI provider is broken in Java version 9 and later. It is recommend that you upgrade ldaptive to v1.3.0 for newer versions of Java. By default this version uses UnboundID, if you’re explicitly using the JNDI provider you should change to the UnboundID provider.
Ldaptive is a simple, extensible Java API for interacting with LDAP servers. It was designed to provide easy LDAP integration for application developers.
Rationale
Developers need LDAP integration for their products, but the JNDI API is cumbersome and takes a great deal of resources to learn and use. In addition, most applications only require a subset of LDAP functionality: search and authentication.
Features
Search result caching
Connection pooling
Authentication API with support for password policy
JAAS modules for authentication and authorization
SSL/startTLS support with easy configuration of trust and key material
Input/output of LDIF and DSML version 1
Command line scripts for operations
Supported providers:
JNDI
UnboundID
Apache
JLdap
OpenDJ
Supported controls (no external dependencies required):
ManageDsaIT (RFC 3296)
Paged results (RFC 2696)
Virtual List View (draft-ietf-ldapext-ldapv3-vlv-09)
These search examples all leverage the SearchExecutor class. For more details on searching and more control over the search operation in general, see the search operation documentation.