Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 963|回复: 0

JAVA 操作 LDAP AD域修改密码报错及解决问题记录 simple bind failed:IP:PORT

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-29 16:07:43 | 显示全部楼层 |阅读模式

    第一次接触ad域操作,搞了一天。终于完成。感谢以下博客主的知识分享。

    主要遇到的问题:

    simple bind failed:IP:PORT

    connect  reset 等。 

     主要解决指导为:

    1. 修改AD的 init 方法初始化 InitialLdapContext 时使用的账号密码,必须是AD域的管理员账号密码。

         如果不是管理员账号,会报53 的错。

    2. JAVA 修改AD密码必须是要用证书的。

    3. 证书中的【颁发给/ 使用者】 必须是 AD域服务器那台机器的域名。如下第3点博客内容。

      如果这名不对,即使有证书,也是连不上ad服务器的, 报 connect reset 的错。或者其他错误

    主要参考:

    1. 测试登陆认证。

    Java使用AD域认证用户_酱油能码丁-CSDN博客

    https://blog.csdn.net/martinwangjun/article/details/79729749?utm_source=blogxgwz2

    2. 测试修改AD密码。

    记一次java实现修改windows AD域的密码_lx318的博客-CSDN博客

    https://blog.csdn.net/lx318/article/details/90199569

    AD域证书申请,导入Java密钥库,实现ldap修改AD用户密码_寒沨的博客-CSDN博客

    https://blog.csdn.net/hc1017/article/details/81293323

    3. Java采用SSL连接AD域连接出错问题simple bind failed:IP:PORT解决方案

    https://blog.csdn.net/hct368/article/details/97247258

     

     

    4. 报错信息参考: 

    private static String getERR(Exception e) {
    /*
    *
    * 根据ldap返回码判断错误原因并返回
    *
    */

    if (e.toString().indexOf("LDAP: error code") > 0) {

    // 得到ldap返回的错误吗

    String errorMsg = e.toString();

    int startNum = errorMsg.toString().indexOf("LDAP: error code") + 17;

    errorMsg = errorMsg.substring(startNum, startNum + 19);

    int endNum = errorMsg.toString().indexOf(" - ");

    errorMsg = errorMsg.substring(0, endNum);

    if ("49".equals(errorMsg)) {

    errorMsg = "域控管理员账户/密码错误";

    } else if ("32".equals(errorMsg) || "34".equals(errorMsg)) {

    errorMsg = "域内账户错误";

    } else if ("10".equals(errorMsg)) {

    errorMsg = "dc错误";

    } else {

    errorMsg = "修改失败,错误吗:" + errorMsg;

    e.printStackTrace();

    }

    System.out.println("Problem resetting password(ldap):" + errorMsg);

    return errorMsg;

    } else {

    if (e.toString().indexOf(

    "algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext") > 0) {

    System.out.println("Problem resetting password(ldap):" + "证书无效/证书密码错误");

    return "修改失败,证书无效/证书密码错误";

    }

    if (e.toString().indexOf(

    "the trustAnchors parameter must be non-empty") > 0) {

    System.out.println("Problem resetting password(ldap):" + "证书不存在");

    return "修改失败,证书不存在";

    }

    e.printStackTrace();

    return "修改失败!";

    }
    }

    5. 

    LDAP 中DN、CN、DC的含义

    转自: https://blog.csdn.net/a118170653/article/details/43449331

     

    很多人虽然会使用dsadd等命令添加用户,但是dsadd的命令说明里面并没有涉及到dc,cn,ou的含义,很多人都不明白,这里是微软的技术支持人 员的回信,希望对大家有帮助。 

    CN, OU, DC 都是 LDAP 连接服务器的端字符串中的区别名称(DN, distinguished   name) 

    LDAP连接服务器的连接字串格式为:ldap://servername/DN   

    其中DN有三个属性,分别是CN,OU,DC   

    LDAP是一种通讯协议,如同HTTP是一种协议一样的! 

    在 LDAP 目录中,

    • DC (Domain Component)
    • CN (Common Name)
    • OU (Organizational Unit)



    LDAP 目录类似于文件系统目录。 
    下列目录: 
    DC=redmond,DC=wa,DC=microsoft,DC=com       

    如果我们类比文件系统的话,可被看作如下文件路径:    
    Com/Microsoft/Wa/Redmond   

    例如:CN=test,OU=developer,DC=domainname,DC=com 
    在上面的代码中 cn=test 可能代表一个用户名,ou=developer 代表一个 active directory 中的组织单位。这句话的含义可能就是说明 test 这个对象处在domainname.com 域的 developer 组织单元中

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-7 12:24 , Processed in 0.084746 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表