public final class LDAPUtils extends Object
LDAPUtils.prioritizeServers(java.util.Set, java.lang.String, java.lang.String)
, which will be prioritized based on the
current server's server ID/site ID.LDAPURL
objects, or you can pass in the list to the newPrioritized* methods.Modifier and Type | Field and Description |
---|---|
static Option<Boolean> |
AFFINITY_ENABLED
An
Option that tells whether affinity based load balancing is enabled for the connections. |
static Option<LDAPUtils.CachedPoolOptions> |
CACHED_POOL_OPTIONS
An
Option that stores the settings related to cached connection pooling. |
Modifier and Type | Method and Description |
---|---|
static void |
addAttributeToMapAsByteArray(Attribute attribute,
Map<String,byte[][]> map)
Converts the Attribute to an attribute name, 2-dimensional byte array map and adds it to the map passed in.
|
static void |
addAttributeToMapAsString(Attribute attribute,
Map<String,Set<String>> map)
Converts the Attribute to an attribute name, set of String values map and adds it to the map passed in.
|
static Set<String> |
collectNonIdenticalValues(Dn compare,
Set<String> dns)
Returns a set of all the non-root DNs from the collection that are not equal to the
compare parameter. |
static Set<LDAPURL> |
convertToLDAPURLs(Set<String> servers)
Converts the incoming set of URLs to
LDAPURL instances and returns them as a set. |
static ConnectionFactory |
createFailoverConnectionFactory(String host,
int defaultPort,
boolean ssl,
String authDN,
String authPasswd,
Options options)
Creates a ConnectionFactory from the host string and associated details.
|
static boolean |
dnEquals(String dn1,
String dn2)
Determines if the DN's are equal.
|
static String |
escapeValue(String str)
Escapes characters that should be escaped.
|
static String |
formatToRFC(String dn)
Converts a DN String to a RFC format and lowers case.
|
static Set<String> |
getAttributeValuesAsStringSet(Attribute attribute)
Converts all the attribute values to a String Set.
|
static String |
getDBName(String suffix,
Connection ld)
Gets the DB name.
|
static Set<LDAPURL> |
getLdapUrls(Set<LDAPURL> ldapServers,
boolean isSSL)
Converts the ldapServers and ssl into LDAPURL and add it into a Set.
|
static Set<LDAPURL> |
getLdapUrls(String serverName,
int port,
boolean isSSL)
Converts the serverName, port and ssl into LDAPURL and add it into a Set.
|
static String |
getName(Dn dn)
Returns the RDN without the attribute name from the passed in
Dn object, for example:
uid=demo,ou=people,dc=example,dc=com will return demo . |
static SearchScope |
getSearchScope(String scope,
SearchScope defaultScope)
Converts string representation of scope (as defined in the configuration) to the corresponding
SearchScope object. |
static boolean |
isDN(String candidateDN)
Tests whether the supplied string is a DN, and is not the root DN.
|
static Dn |
newDN(String orgName)
Creates a DN from the specified DN string.
|
static ConnectionFactory |
newFailoverConnectionFactory(Set<LDAPURL> servers,
String username,
char[] password,
int heartBeatInterval,
String heartBeatTimeUnit,
boolean useStartTls,
boolean sslTrustAll,
Options ldapOptions)
Creates a new connection factory that is capable to failover to the servers defined in case there is an error.
|
static LdapConnectionFactory |
newFailoverConnectionPool(Set<LDAPURL> primaryUrls,
Set<LDAPURL> secondaryUrls,
String username,
char[] password,
int maxSize,
int heartBeatInterval,
String heartBeatTimeUnit,
boolean useStartTLS,
boolean sslTrustAll,
Options ldapOptions)
Creates a new connection pool that is capable to failover from the primary to the secondary servers defined
in case there is an error.
|
static ConnectionFactory |
newFailoverConnectionPool(Set<LDAPURL> servers,
String username,
char[] password,
int maxSize,
int heartBeatInterval,
String heartBeatTimeUnit,
boolean useStartTLS,
boolean sslTrustAll,
Options ldapOptions)
Creates a new connection pool that is capable to failover to the servers defined in case there is an error.
|
static ConnectionFactory |
newNamedConnectionFactory(ConnectionFactory factory,
String name)
Creates a new connection factory which forwards connection requests to the provided factory, but whose
toString method will always return name . |
static ConnectionFactory |
newPasswordConnectionFactory(Set<LDAPURL> primaryServers,
Set<LDAPURL> secondaryServers,
String username,
char[] password,
int maxSize,
int heartBeatInterval,
String heartBeatTimeUnit,
boolean useStartTLS,
boolean sslTrustAll,
Options ldapOptions)
Creates a new connection pooled connection factory that is capable to
failover to the servers defined in case there is an error.
|
static ConnectionFactory |
newPasswordConnectionFactory(Set<LDAPURL> servers,
String username,
char[] password,
int maxSize,
int heartBeatInterval,
String heartBeatTimeUnit,
boolean useStartTLS,
boolean sslTrustAll,
Options ldapOptions)
Creates a new connection pooled connection factory that is capable to
failover to the servers defined in case there is an error.
|
static ConnectionFactory |
newPrioritizedFailoverConnectionFactory(Set<String> servers,
String hostServerId,
String hostSiteId,
String username,
char[] password,
int heartBeatInterval,
String heartBeatTimeUnit,
boolean useStartTLS,
boolean sslTrustAll,
Options options)
Based on the incoming parameters prioritizes the LDAP server list, then creates a connection factory that is
capable to failover to the servers defined in case there is an error.
|
static ConnectionFactory |
newPrioritizedFailoverConnectionPool(Set<String> servers,
String hostServerId,
String hostSiteId,
String username,
char[] password,
int maxSize,
int heartBeatInterval,
String heartBeatTimeUnit,
boolean useStartTLS,
boolean sslTrustAll,
Options ldapOptions)
Based on the incoming parameters prioritizes the LDAP server list, then creates a connection pool that is
capable to failover to the servers defined in case there is an error.
|
static String |
normalizeDN(String dn)
Normalizes the DN.
|
static Filter |
parseFilter(String filter,
Filter defaultFilter)
Parses the incoming filter, and in case of failure falls back to the default filter.
|
static String |
partiallyEscapeAssertionValue(String assertionValue)
Escapes the provided assertion value according to the LDAP standard.
|
static Set<LDAPURL> |
prioritizeServers(Set<String> servers,
String hostServerId,
String hostSiteId)
Prioritizes the incoming LDAP servers based on their assigned servers/sites.
|
static String |
rdnType(Rdn rdn)
When provided an RDN, returns the attribute type name.
|
static String |
rdnTypeFromDn(Dn dn)
When provided a DN, returns the attribute type name of the first RDN.
|
static String |
rdnTypeFromDn(String dn)
When provided a DN, returns the attribute type name of the first RDN.
|
static String |
rdnValue(Rdn rdn)
When provided an RDN, returns the value part.
|
static String |
rdnValueFromDn(Dn dn)
When provided a DN, returns the value part of the first RDN.
|
static String |
rdnValueFromDn(String dn)
When provided a DN, returns the value part of the first RDN.
|
public static final Option<Boolean> AFFINITY_ENABLED
Option
that tells whether affinity based load balancing is enabled for the connections.public static final Option<LDAPUtils.CachedPoolOptions> CACHED_POOL_OPTIONS
Option
that stores the settings related to cached connection pooling.public static ConnectionFactory newPrioritizedFailoverConnectionPool(Set<String> servers, String hostServerId, String hostSiteId, String username, char[] password, int maxSize, int heartBeatInterval, String heartBeatTimeUnit, boolean useStartTLS, boolean sslTrustAll, Options ldapOptions)
servers
- The set of servers in the format defined in LDAPUtils.prioritizeServers(java.util.Set, java.lang.String, java.lang.String)
.hostServerId
- The server ID for this OpenAM server.hostSiteId
- The site ID for this OpenAM server.username
- The directory user's DN. May be null if this is an anonymous connection.password
- The directory user's password.maxSize
- The max size of the created pool.heartBeatInterval
- The interval for sending out heartbeat requests.heartBeatTimeUnit
- The timeunit for the heartbeat interval.useStartTLS
- Use StartTLS to connect to the LDAP Server(s).sslTrustAll
- trust all certs to connect to the LDAPS Server(s).ldapOptions
- Additional LDAP settings used to create the pool.public static ConnectionFactory newFailoverConnectionPool(Set<LDAPURL> servers, String username, char[] password, int maxSize, int heartBeatInterval, String heartBeatTimeUnit, boolean useStartTLS, boolean sslTrustAll, Options ldapOptions)
servers
- The set of LDAP URLs that will be used to set up the connection factory.username
- The directory user's DN. May be null if this is an anonymous connection.password
- The directory user's password.maxSize
- The max size of the created pool.heartBeatInterval
- The interval for sending out heartbeat requests.heartBeatTimeUnit
- The timeunit for the heartbeat interval.useStartTLS
- Use StartTLS to connect to the LDAP Server(s).sslTrustAll
- trust all certs to connect to the LDAPS Server(s).ldapOptions
- Additional LDAP settings used to create the poolpublic static LdapConnectionFactory newFailoverConnectionPool(Set<LDAPURL> primaryUrls, Set<LDAPURL> secondaryUrls, String username, char[] password, int maxSize, int heartBeatInterval, String heartBeatTimeUnit, boolean useStartTLS, boolean sslTrustAll, Options ldapOptions)
primaryUrls
- The set of LDAP URLs that will be used as primary servers to set up the connection factory.secondaryUrls
- The set of LDAP URLs that will be used as secondary servers to set up the connection
factory.username
- The directory user's DN. May be null if this is an anonymous connection.password
- The directory user's password.maxSize
- The max size of the created pool.heartBeatInterval
- The interval for sending out heartbeat requests.heartBeatTimeUnit
- The timeunit for the heartbeat interval.useStartTLS
- Use StartTLS to connect to the LDAP Server(s).sslTrustAll
- trust all certs to connect to the LDAPS Server(s).ldapOptions
- Additional LDAP settings used to create the poolpublic static ConnectionFactory newPrioritizedFailoverConnectionFactory(Set<String> servers, String hostServerId, String hostSiteId, String username, char[] password, int heartBeatInterval, String heartBeatTimeUnit, boolean useStartTLS, boolean sslTrustAll, Options options)
servers
- The set of servers in the format defined in LDAPUtils.prioritizeServers(java.util.Set, java.lang.String, java.lang.String)
.hostServerId
- The server ID for this OpenAM server.hostSiteId
- The site ID for this OpenAM server.username
- The directory user's DN. May be null if this is an anonymous connection.password
- The directory user's password.heartBeatInterval
- The interval for sending out heartbeat requests.heartBeatTimeUnit
- The timeunit for the heartbeat interval.useStartTLS
- Use StartTLS to connect to the LDAP Server(s).sslTrustAll
- trust all certs to connect to the LDAPS Server(s).options
- Additional LDAP settings used to create the connection factory.public static ConnectionFactory newFailoverConnectionFactory(Set<LDAPURL> servers, String username, char[] password, int heartBeatInterval, String heartBeatTimeUnit, boolean useStartTls, boolean sslTrustAll, Options ldapOptions)
servers
- The set of LDAP URLs that will be used to set up the connection factory.username
- The directory user's DN. May be null if this is an anonymous connection.password
- The directory user's password.heartBeatInterval
- The interval for sending out heartbeat requests.heartBeatTimeUnit
- The timeunit for the heartbeat interval.useStartTls
- Use StartTLS to connect to the LDAP Server(s).sslTrustAll
- trust all certs to connect to the LDAPS Server(s).ldapOptions
- Additional LDAP settings used to create the connection factory.public static Set<LDAPURL> prioritizeServers(Set<String> servers, String hostServerId, String hostSiteId)
host:port
- The LDAP server has no preferred
server/sitehost:port|serverid
- The LDAP server should be mainly
used by an OpenAM instance with the same serveridhost:port|serverid|siteid
- The LDAP server should be
mainly used by an OpenAM instance with the same serverid or with the same
siteidservers
- The Set of servers that needs to be prioritized in the previously described format.hostServerId
- This server's ID.hostSiteId
- This server's site ID.public static SearchScope getSearchScope(String scope, SearchScope defaultScope)
SearchScope
object.scope
- the string representation of the scope.defaultScope
- in case the coversion fail this default scope should be returned.SearchScope
object.public static Filter parseFilter(String filter, Filter defaultFilter)
filter
- The filter that needs to be parsed.defaultFilter
- If the parsing fails, this will be returned.public static String getName(Dn dn)
Dn
object, for example:
uid=demo,ou=people,dc=example,dc=com
will return demo
.dn
- The DN that we need the name of.public static void addAttributeToMapAsByteArray(Attribute attribute, Map<String,byte[][]> map)
attribute
- The attribute that needs to be converted.map
- The map where the converted attribute is added to.public static void addAttributeToMapAsString(Attribute attribute, Map<String,Set<String>> map)
attribute
- The attribute that needs to be converted.map
- The map where the converted attribute is added to.public static Set<String> getAttributeValuesAsStringSet(Attribute attribute)
attribute
- the attribute to be converted.public static Set<LDAPURL> convertToLDAPURLs(Set<String> servers)
LDAPURL
instances and returns them as a set. The iteration order
of the originally passed in Set is retained.servers
- The LDAP server URLs that needs to be converted to LDAPURL
instances.public static String rdnValueFromDn(String dn)
dn
- A DN.IllegalArgumentException
- When the DN's RDN is multivalued, or when the DN is not a valid name.public static String rdnValueFromDn(Dn dn)
dn
- A DN.IllegalArgumentException
- When the DN's RDN is multivalued.public static String rdnValue(Rdn rdn)
rdn
- An RDN.IllegalArgumentException
- When the RDN is multivalued.public static String rdnTypeFromDn(String dn)
dn
- A DN.IllegalArgumentException
- When the DN's RDN is multivalued.public static String rdnTypeFromDn(Dn dn)
dn
- A DN.IllegalArgumentException
- When the DN's RDN is multivalued.public static String rdnType(Rdn rdn)
rdn
- An RDN.IllegalArgumentException
- When the RDN is multivalued.public static Set<String> collectNonIdenticalValues(Dn compare, Set<String> dns) throws InvalidNameException
compare
parameter.compare
- The DN to compare against.dns
- THe DNs to compare.Set
of non identical DNs.InvalidNameException
- If an error occurs.public static String getDBName(String suffix, Connection ld)
suffix
- The suffix.ld
- The connection.public static boolean isDN(String candidateDN)
candidateDN
- The possible DN.true
if the string is a DN.public static String escapeValue(String str)
str
- The string to escape.public static String partiallyEscapeAssertionValue(String assertionValue)
assertionValue
- The filter assertionValue that needs to be escaped.public static String normalizeDN(String dn)
dn
- The DN to normalize.public static Dn newDN(String orgName)
orgName
- The DN string.public static String formatToRFC(String dn)
dn
- the DN String to be formatedpublic static boolean dnEquals(String dn1, String dn2)
dn1
- The first DN.dn2
- The second DN.true
if the DN's are equal.public static ConnectionFactory createFailoverConnectionFactory(String host, int defaultPort, boolean ssl, String authDN, String authPasswd, Options options)
[host]:[port]
host1 host2 host3
host1:389 host2:50389
ConnectionFactory
is returned. All factories are
pre-authenticated using the supplied credentials.host
- The host/host-port string.defaultPort
- The port number to use for hosts that do not specify a port in the string.ssl
- SSL enabled or not.authDN
- The DN to bind with.authPasswd
- The password to bind with.options
- Any additional options.public static Set<LDAPURL> getLdapUrls(String serverName, int port, boolean isSSL)
serverName
- The LDAP server name.port
- The LDAP server port number.isSSL
- boolean value of true/false for ssl.public static Set<LDAPURL> getLdapUrls(Set<LDAPURL> ldapServers, boolean isSSL)
ldapServers
- The LDAP servers in the format of serverName:portisSSL
- boolean value of true/false for ssl.public static ConnectionFactory newNamedConnectionFactory(ConnectionFactory factory, String name)
toString
method will always return name
.
This method may be useful for debugging purposes in order to more easily identity connection factories.
factory
- The connection factory to be named.name
- The name of the connection factory.NullPointerException
- If factory
or name
was null
.public static ConnectionFactory newPasswordConnectionFactory(Set<LDAPURL> servers, String username, char[] password, int maxSize, int heartBeatInterval, String heartBeatTimeUnit, boolean useStartTLS, boolean sslTrustAll, Options ldapOptions)
servers
- The set of LDAP URLs that will be used to set up the connection factory.username
- The directory user's DN. May be null if this is an anonymous connection.password
- The directory user's password.maxSize
- The max size of the created pool.heartBeatInterval
- The interval for sending out heartbeat requests.heartBeatTimeUnit
- The timeunit for the heartbeat interval.useStartTLS
- Use StartTLS to connect to the LDAP Server(s).sslTrustAll
- trust all certs to connect to the LDAPS Server(s).ldapOptions
- Additional LDAP settings used to create the poolpublic static ConnectionFactory newPasswordConnectionFactory(Set<LDAPURL> primaryServers, Set<LDAPURL> secondaryServers, String username, char[] password, int maxSize, int heartBeatInterval, String heartBeatTimeUnit, boolean useStartTLS, boolean sslTrustAll, Options ldapOptions)
primaryServers
- The set of LDAP URLs that will be used to set up the connection factory.secondaryServers
- The secondary set of LDAP URLs that will be used to set up the connection factory.username
- The directory user's DN. May be null if this is an anonymous connection.password
- The directory user's password.maxSize
- The max size of the created pool.heartBeatInterval
- The interval for sending out heartbeat requests.heartBeatTimeUnit
- The timeunit for the heartbeat interval.useStartTLS
- Use StartTLS to connect to the LDAP Server(s).sslTrustAll
- trust all certs to connect to the LDAPS Server(s).ldapOptions
- Additional LDAP settings used to create the poolCopyright © 2010-2018, ForgeRock All Rights Reserved.