LDAP:错误代码 49 - 简单绑定失败:NT_STATUS_LOGON_FAILURE

2024-01-01

我正在尝试对用户进行身份验证,但它抛出Exception.可能是配置有问题。

public class LdapApplication {
private static final String INITIAL_CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
private static final String SECURITY_AUTHENTICATION ="simple";
private static final String NAMED_CONTEXT = "CN=Users";
private static final String SAM_ACCOUNT_NAME = "sAMAccountName=";

public static void main(String[] args) {

    Hashtable env = new Hashtable();

    env.put(Context.INITIAL_CONTEXT_FACTORY,INITIAL_CONTEXT_FACTORY);
    env.put(Context.PROVIDER_URL, "ldap://ip:portNo/dc=organisation,dc=in");
    env.put(Context.SECURITY_AUTHENTICATION, SECURITY_AUTHENTICATION);
    env.put(Context.SECURITY_PRINCIPAL, "cn=userName,cn=Users");
    env.put(Context.SECURITY_CREDENTIALS, "password" );
    DirContext context = null;

    NamingEnumeration namingEnumeration = null;
    try {
        context = new InitialDirContext(env);

        namingEnumeration = context.search(NAMED_CONTEXT, SAM_ACCOUNT_NAME+ userName, null);
        while (namingEnumeration.hasMore()) {
            SearchResult searchResult = (SearchResult) namingEnumeration.next();
            Attributes attributes = searchResult.getAttributes();

            System.out.println(" Person Common Name = " + attributes.get("cn"));
          System.out.println(" Person Display Name = " + attributes.get("displayName"));

            }catch(Exception e){
                System.out.println(e.getMessage());
                e.printStackTrace();

            }
        }
    } catch (Throwable e) {
        e.printStackTrace();
    } finally {
        if (namingEnumeration != null) {
            try {
                namingEnumeration.close();
            } catch (Exception e) {
            }
        }
        if (context != null) {
            try {
                context.close();
            } catch (Exception e) {
            }
        }
    }

}

}

但如果我提到Context.SECURITY_PRINCIPAL as "organisation\\userName"代替"cn=userName,cn=Users"它工作得很好。请建议一个可能的解决方案,因为我的要求是使用 cn 或 dc 为 SECURITY_PRINCIPAL 提供一些东西。


您使用的相对专有名称不起作用。

更改您要使用的代码

env.put(Context.SECURITY_PRINCIPAL, "cn=userName,cn=Users,dc=organisation,dc=in");

并将您的搜索上下文更改为:

private static final String NAMED_CONTEXT = "CN=Users,dc=organisation,dc=in";

始终对 LDAP 使用完整的专有名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LDAP:错误代码 49 - 简单绑定失败:NT_STATUS_LOGON_FAILURE 的相关文章

  • 如何根据 JComboBox 选择动态地将控件添加到表单?

    我正在尝试使用 Swing 创建一个简单的 java 表单 这个想法的基本思想是用户将在 JComboBox 中选择 0 到 5 然后 通过 ItemStateChanged 侦听器 将动态添加几个面板 每个面板包含 4 个控件 因此 如果
  • 使用 CXF 通过 HTTP 基本身份验证使用 Web 服务时出现 401 错误

    我正在尝试在 JUnit 测试中使用使用 HTTP 基本身份验证 使用 Apache CXF 的远程 Web 服务 我收到的错误是 javax xml ws WebServiceException Failed to access the
  • 使用不同的组合器和累加器进行流缩减的示例

    问题是关于java util stream Stream reduce U identity BiFunction
  • SimpleDateFormat 无法正确处理 DD

    我正在尝试获得这样的格式 2013 06 15 17 45 我在代码中执行以下操作 Date d new Date SimpleDateFormat ft new SimpleDateFormat YYYY MM DD HH mm Stri
  • 平衡括号问题的优化解

    给定一个仅包含字符的字符串 and 判断输入字符串是否有效 输入字符串在以下情况下有效 左括号必须由相同类型的括号封闭 左括号必须按正确的顺序关闭 请注意 空字符串也被视为有效 示例1 Input Output true Example 2
  • 从另一个类添加 Swing 组件

    我正在学习java 我正在尝试从另一个类向我的框架添加一个菜单栏 练习将代码划分为多个类以更好地组织程序 这是我的代码示例 public class MainApp public static void main String args C
  • Knuth-Morris-Pratt 算法

    解决方案是Knuth Morris Pratt 算法 https en wikipedia org wiki Knuth E2 80 93Morris E2 80 93Pratt algorithm 干草堆 AAAAAAAAA 针 AAA
  • 添加和完成 PHP 源代码文档的工具 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有几个已完成的较旧的 PHP 项目 其中有很多内容 我想以 javadoc phpDocumentor
  • 未从线程接收位置数据

    我尝试使用计时器经常发送包含用户位置的短信 最初 我遇到了空指针异常 这是由于我犯了一个简单的错误 一旦解决了这个问题 一切似乎都运行良好 但是 它永远不会获取我的位置 因此 不断发送的文本显示 无法接收位置 我想问的是为什么它无法获取我的
  • 不想保留一对一的实体

    假设我有两节课Employee and Department In Employee我已经写了 OneToOne fetch FetchType EAGER cascade CascadeType ALL JoinColumn name d
  • 为什么 Cassandra 客户端在生产中没有 epoll 时会失败? [复制]

    这个问题在这里已经有答案了 当我在本地运行服务时 我收到一条警告 指出 epoll 不可用 因此它使用 NIO 很公平 当我将其部署到 Kubernetes 中时 我得到了以下信息 这导致服务无法运行 2017 03 29T19 09 22
  • 使用 Lint 和 SonarQube 分析 Android 项目

    我真的 溢出 了试图让这些东西一起工作 我按照这里的指示进行操作 http docs sonarqube org display PLUG Android Lint Plugin http docs sonarqube org displa
  • JSF“总”变量类似于 JSTL 中的 c:set

    我不喜欢 JSF 但我需要用它来解决这个问题 我正在 纯 JSF 中工作 所以这就是我基本上需要的 但我不知道如何用 JSF 来实现它
  • 飞碟 - html 实体未呈现

    我正在使用 Flying saucer lib 生成 pdf 但我对一些 html 实体有问题 我已经在寻找解决方案 我在这个论坛和其他地方找到了很多提示 但仍然存在问题 我尝试过这种方法 http sdtidbits blogspot c
  • System.out.println("嗨"+6+10);打印Hi610?

    为什么要这样做 太令人困惑了 运算符优先级和结合性 两点 操作员 如果一个或两个参数都是字符串 则进行字符串连接 操作员 从左到右工作 所以在你的例子中 Hi 6 is Hi6 and Hi6 10 is Hi610 编辑 正如您在对另一个
  • 解析 SWIG 接口文件的结构属性

    这是我不久前问过的问题的延续 为通过参数返回的函数创建类型映射 https stackoverflow com questions 12793973 create a typemap for a function that returns
  • 在SPRING BOOT中配置多个数据库

    我正在尝试为我的 Spring Boot 应用程序连接 2 个不同的数据库 但出现此错误 应用程序无法启动 描述 com SyncFibertToolSpring SyncFibertTool MydbDB Config MydbDbCon
  • 从 IntelliJ 运行 JavaFX 应用程序

    Versions openjdk版本 11 0 11 2021 04 20 OpenJDK 运行时环境 build 11 0 11 9 Ubuntu 0ubuntu2 20 10 OpenJDK 64 位服务器虚拟机 内部版本 11 0 1
  • Java分数计算器

    我对 Java 编程还很陌生 我的 AP 计算机编程课程有作业要完成 所以请耐心等待 我必须弄清楚如何将两个分数相乘 我想知道是否有任何方法可以在方法内部声明变量并在该方法外部使用它 我在介绍方法中的 while 循环 谢谢您 希望这不会令
  • selenium 没有找到合适的方法,直到(ExpectedCondition)

    这是有线的问题 我导入的项目运行 100 几个月前 今天我已将其与依赖项一起导入 但存在问题WebDriverWait 这是我的代码 WebDriverWait driverWait new WebDriverWait driver 100

随机推荐

  • 从 recordset.field.type 属性获取 ADO 数据类型的名称?

    我需要从 Access 表中生成字段列表 名称 类型和大小 这个简单的 VB 代码给了我almost我需要的 Set rs CurrentDb OpenRecordset myTable For x 0 To rs Fields Count
  • 如何在不改变窗口焦点的情况下打破全部

    在测试 Windows 窗体 UI 时 我经常希望在代码运行时修改代码 单击 Break All 箭头可以为我完成此操作 但是 Visual Studio 始终显示 Program cs 窗口并将焦点设置在 Application Run
  • 是否可以通过 .NET 代码对二进制文件进行签名? (没有signtool.exe)

    我有以下要求 使用证书签署二进制文件 但没有signtool exe 这个想法是通过代码来完成 你知道这是否可能吗 您将需要使用签名者签名 http msdn microsoft com en us library windows desk
  • 为什么 jquery ui 按钮在 Firefox 和 Chrome 中看起来不同

    我已经上传了一个示例页面https bobdn com Temp aspx https bobdn com Temp aspx 该页面只有一个 jquery UI 按钮 为什么这在 Firefox 中看起来有点大 填充和字体大小看起来都很大
  • SVG defs 上的鼠标事件(遮罩)

    背景图像上有 svg SVG 是一个中间有圆孔的正方形 作为示例 背景图像穿过圆圈出现 我想用鼠标拖动这个圆圈 但如何从 javascript 访问 svg 内的 defs 尚不清楚 我可以更改属性 但 onclick 事件对它们不起作用
  • jQuery + Ajax 哈希/历史记录等

    我正在尝试使用 jQuery 中的 URL 哈希来控制 Ajax 中的历史记录并使链接 页面可添加书签 我已经尝试了几乎所有插件 但似乎都无法正常工作 所以我实际上没有任何代码示例 但我愿意接受任何建议 信息 教程等 我试图将其合并到的其中
  • 类型提供程序可以作为参数传递给函数吗

    我正在学习 F 和FSharp 数据库 http fsharp github io FSharp Data 我有一个任务需要读取 20 个 CSV 文件 每个文件都有不同数量的列 但记录具有相同的性质 以日期字符串为键 所有其余列都是浮点数
  • 使用 EPPlus 复制/克隆 Excel 形状?

    是否可以使用 EPPlus 库在 Excel 工作表中创建形状的副本 克隆 我知道我可以得到一个现有的对象 var shapeExisting ws Drawings ShapeName ws是工作表对象 并创建新形状 var shapeN
  • CKEditor只读

    自从我使用 CKEditor 以来我遇到了一个问题 http ckeditor com http ckeditor com 问题是我找不到使编辑器只读的方法 而且我不能只使用文本区域 因为我想保持一致性 我已经在 StackOwerflow
  • 制作 Flash 游戏的可下载版本的最佳方法是什么?

    我已经用 Flash 制作了一款游戏 我想为那些宁愿离线玩的人提供一个简单的下载 事实是 我使用文件夹整体结构来动态加载每个级别的内容 文件夹结构看起来像这样 但这并不重要 游戏文件夹 animations 动画1 swf 动画2 swf
  • 使用 Apache POI 从 java 中的 excel 工作表读取数据

    我需要在 java 中读取 Excel 工作表中的数据 我能够读取普通字符串 但是当我尝试读取包含日期和时间的单元格 28 5 2018 10 00 时 我只得到日期为 2018 年 5 月 28 日 这是Excel单元格 此代码读取日期
  • NReco PDFGenerator 问题

    我已经使用这个工具大约一周了 现在 今天 它停止工作了 我已将其余代码恢复到之前的状态 但仍然出现相同的错误 我从抛出的异常中得到的所有信息是 NReco PdfGenerator dll 中发生 System Exception 类型的异
  • 在 Draft.js 中获取插入符位置(行号)

    如何获得 Draft js 中的插入符号位置 我想你可以从选择状态中获取块 然后获取块数组并查看块数组位于哪个位置 但我不确定这是一种可靠的方法 甚至是最好的方法 不确定这是否是您的意思 但您可以像这样获取当前块的索引 const curr
  • 为什么从命令提示符运行 JAR 文件时出现异常?

    您好 我使用 eclipse 上的导出选项制作了一个可运行的 JAR 文件 但是 当我通过命令提示符运行文件时 我得到以下信息 Exception in thread main java lang NoSuchMethodError at
  • Golang 歧义错误重新定义

    为什么可以redefine the err多变的 err ipdf Open source if err nil panic Couldn t open pdf payload err ioutil ReadFile other if er
  • 将大量数据从 iPad 转换/上传到 Dropbox

    我正在通过 Instruments 运行我的应用程序并使用大量数据对其进行压力来完成它 仪器测试进展顺利 但压力测试是我遇到问题的地方 在不涉及太多细节的情况下 我为我的应用程序提供了越来越多的Core Data它需要推断数据 制作图表并在
  • Angular 中的加密和 C# (.NET) 中的解密

    我有 Angular 中的数据加密代码 但我不知道如何在服务器端解密它 角码 public static getEncryptedInfo dataString string let password environment encrypt
  • 如何将 system.serviceModel 放入 ServiceConfiguration.cscfg (Windows Azure)

    我有以下代码 用于微软翻译
  • 在 Surfaceview 的画布上显示位图

    我正在尝试开发一个 Android 应用程序来显示可缩放 可平移的地图 这只是一个位图图像 它还允许用户单击地图上的某些点 我正在努力寻找实现此类应用程序的最有效方法 在尝试了许多其他方法 包括 Webviews OpenLayers 之后
  • LDAP:错误代码 49 - 简单绑定失败:NT_STATUS_LOGON_FAILURE

    我正在尝试对用户进行身份验证 但它抛出Exception 可能是配置有问题 public class LdapApplication private static final String INITIAL CONTEXT FACTORY c