第一种
@Configuration
public class ADConfig {
@Value("${ad.username}")
private String adminName;
@Value("${ad.password}")
private String adminPassword;
@Value("${ad.ldapURL}")
private String ldapURL;
@Bean
public LdapContext readConf() {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");//"none","simple","strong"
env.put(Context.SECURITY_PRINCIPAL, adminName);
env.put(Context.SECURITY_CREDENTIALS, adminPassword);
env.put(Context.PROVIDER_URL, ldapURL);
LdapContext ctx=null;
try {
ctx = new InitialLdapContext(env, null);
} catch (NamingException e) {
e.printStackTrace();
}
return ctx;
}
}第二种
@Configuration
public class ADConfig {
@Autowired
private Environment env;
@Bean
public LdapContext readConf() {
String adminName = env.getProperty("ad.username");
String adminPassword = env.getProperty("ad.password");
String ldapURL = env.getProperty("ad.ldapURL");//
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");//"none","simple","strong"
env.put(Context.SECURITY_PRINCIPAL, adminName);
env.put(Context.SECURITY_CREDENTIALS, adminPassword);
env.put(Context.PROVIDER_URL, ldapURL);
LdapContext ctx=null;
try {
ctx = new InitialLdapContext(env, null);
System.out.println("222");
} catch (NamingException e) {
e.printStackTrace();
}
return ctx;
}
}如果属性比较多建议通过提取bean的方式来读取
本文提供了两种使用Spring框架配置Active Directory的方法。第一种方法直接使用@Value注解获取配置值;第二种方法则利用@Autowired注入Environment对象来获取配置值。这两种方式都展示了如何创建LdapContext以连接到LDAP服务器。

1万+

被折叠的 条评论
为什么被折叠?



