我想知道是否有办法检索连接的ldap服务器类型(openldap或active directory)
这是我的连接方法
public DirContext ldapUserConnect(String serverUrl, int serverPort, String serverType, String userDn,
String userPassword, boolean binaryAttribute) throws NamingException {
// connect to ldap server using ldap_server table data
if ((userDn != null && !userDn.isEmpty()) || (userPassword != null && !userPassword.isEmpty())) {
Map<String, String> environment = getLdapEnvironement(serverUrl, serverPort, serverType, binaryAttribute);
// connect with user account
environment.put(javax.naming.Context.SECURITY_PRINCIPAL, userDn);
environment.put(javax.naming.Context.SECURITY_CREDENTIALS, userPassword);
return new InitialDirContext((Hashtable<String, String>) environment);
} else {
return null;
}
}
答案 0 :(得分:1)
一般方法是检查rootDSE
条目;但是,无法保证所有LDAP服务器供应商都支持此方法。 Determine LDAP Server Vendor提供了几个LDAP“风格”的描述并确定了它们的供应商名称/版本。