Java Active Directory连接测试和一些配置详细信息

Java Active Directory连接测试和一些配置详细信息,java,spring,spring-security,active-directory,ldap,Java,Spring,Spring Security,Active Directory,Ldap,我们正在用java和spring security开发一个web应用程序。我的任务是添加对Active Directory用户身份验证的支持。 为此,我将2008年的一台服务器升级为域控制,并添加了一个带有ActiveDirectoryLdapAuthenticationProvider spring类的代码段来验证登录用户。 它与ldap和ldaps protcols配合得很好 但有几个问题: 1) ActiveDirectoryLdapAuthenticationProvider构造函数只接

我们正在用java和spring security开发一个web应用程序。我的任务是添加对Active Directory用户身份验证的支持。 为此,我将2008年的一台服务器升级为域控制,并添加了一个带有ActiveDirectoryLdapAuthenticationProvider spring类的代码段来验证登录用户。 它与ldap和ldaps protcols配合得很好

但有几个问题:

1) ActiveDirectoryLdapAuthenticationProvider构造函数只接受AD url和域名,这与OpenLDAP的LdapAuthenticationProvider不同,后者需要远程输入详细信息,如managerDN、管理员密码、用户搜索库和组搜索库等。Active Directory不需要所有这些数据吗?我想至少需要管理员用户/密码才能允许连接!当然,在我的测试例程中,我只提供了url和域,它成功地对用户进行了身份验证

2) 我需要编写快速连接测试例程来验证用户输入的广告url和域是否有效。怎么做

顺便说一句,我们的应用程序将部署在Ubuntu上


谢谢。

可以使用以下代码片段进行连接测试:

Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://dc.example.com");
env.put(Context.SECURITY_AUTHENTICATION, "none");

try {
   new InitialDirContext(env);
} catch (NamingException e) {
   // not connected
}
Hashtable env=new Hashtable();
put(Context.INITIAL\u Context\u工厂,“com.sun.jndi.ldap.LdapCtxFactory”);
env.put(Context.PROVIDER\u URL,“ldap://dc.example.com");
环境put(Context.SECURITY_身份验证,“无”);
试一试{
新环境;
}捕获(NamingE例外){
//不相连
}
仍然试图理解url和域信息足以与AD对话,或者在某些情况下需要提供更多的对象信息