java通过ldap访问AD

w_wind w_wind 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
需要用域用户名和密码登陆项目,这个需要使用ladp访问AD进行验证,大概代码网上很多但没有试成。
public class Dmoe3 {
public static void main(String[] args) {
String userName = "test@xxx.com"; // 用户名称
String password = "123123"; // 密码
String host = "192.168.0.1"; // AD服务器
String port = "389"; // 端口
String url = new String("ldap://" + host + ":" + port);
Hashtable env = new Hashtable();
DirContext ctx;
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, userName);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, url);
try {
ctx = new InitialDirContext(env);
ctx.close();
System.out.println("验证成功!");
} catch (NamingException err) {
err.printStackTrace();
System.out.println("验证失败!");
}
}
}

public class Demo2 {
public LdapContext getConnectionFromFool() throws NamingException {
String keystore = "D:/soft02/JDK/jre/lib/security/cacerts";
System.setProperty("javax.net.ssl.trustStore", keystore);
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.0.1:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,"cn=test@domain.com");
env.put(Context.SECURITY_PRINCIPAL,"cn=administrator,cn=Users,dc=all,dc=com");
env.put(Context.SECURITY_CREDENTIALS, "123123");
env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put("com.sun.jndi.ldap.connect.pool", "true");
env.put("java.naming.referral", "follow");
InitialLdapContext dcx = null;
dcx = new InitialLdapContext(env, null);
return dcx;
}

}


这两段代码都报javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1异常。我估计是证书不正确或env.put(Context.SECURITY_PRINCIPAL,"cn=administrator,cn=Users,dc=all,dc=com"); 这个写法不正确。不知道怎么弄了,谁做过的看看啊!
...全文
评论 6
收藏 已收藏
分享
返回顶部
w_wind
Java EE 67,535 成员 225,843 内容