4、调用以下程序进行认证:
public int lDAPAuth(String usserName, String adminPassword)
throws NamingException, JDOMException {
// 获取Ad域服务器配置信息
RadiusConfigObj radiusConfigObj = AnalysisPattern.getADConfigInfo();
if (StringUtils.isEmpty(radiusConfigObj.getIp())
|| StringUtils.isEmpty(radiusConfigObj.getAuthPort())
|| StringUtils.isEmpty(radiusConfigObj.getDominName())) {
return 61;
}
Hashtable<String, String> HashEnv = new Hashtable<String, String>();
// LDAP访问地址
String LDAP_URL = "ldap://" + radiusConfigObj.getIp() + ":"
+ radiusConfigObj.getAuthPort();
// 注意用户名的写法:domain\User 郭丽伟@adTest.com
String adminName = usserName.trim() + "@" + radiusConfigObj.getDominName().trim();
HashEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); // LDAP访问安全级别
HashEnv.put(Context.SECURITY_PRINCIPAL, adminName); // AD User
HashEnv.put(Context.SECURITY_CREDENTIALS, adminPassword); // AD Password
HashEnv.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory"); // LDAP工厂类
HashEnv.put(Context.PROVIDER_URL, LDAP_URL);
// 调用接口进行认证,如果认证不通过,ctx == null,并抛出异常
LdapContext ctx = new InitialLdapContext(HashEnv, null);
if (null == ctx) {
return 62;
}
return 1;
}
}