首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java-如何告诉LDAP DirContext.search(...).hasMore()返回false而不是抛出PartialResultException

首先,了解LDAP(Lightweight Directory Access Protocol)是一种轻量级的目录访问协议,主要用于在IP网络中查找和访问目录服务。DirContext.search()方法用于从目录中查找对象,并返回一个SearchResultCollection对象,其中包含搜索结果。

如果需要在LDAP中查找不存在的对象,可以使用DirContext.search()方法。如果查找的对象不存在,该方法将返回一个PartialResultException异常。为了避免这种情况,可以使用DirContext.search()方法的hasMore()方法,该方法返回一个boolean值,指示是否还有更多的结果。如果该值为false,则表明没有更多的结果,可以安全地退出循环。

因此,为了告诉LDAP DirContext.search(...).hasMore()返回false而不是抛出PartialResultException,可以使用以下代码:

代码语言:txt
复制
boolean hasMore = dirContext.search().hasMore();
if (!hasMore) {
    // 处理没有更多结果的情况
}

其中,dirContext.search().hasMore()方法会返回一个boolean值,指示是否还有更多的结果。如果该值为false,则表明没有更多的结果,可以安全地退出循环。如果该值为true,则表明还有更多的结果,可以继续查找。

需要注意的是,如果DirContext.search()方法返回的SearchResultCollection对象中包含多个搜索结果,则hasMore()方法返回true,表明还有更多的结果。如果SearchResultCollection对象中不包含任何搜索结果,则hasMore()方法返回false,表明没有更多的结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ldap 统一认证 java_如何在你的系统里集成LDAP统一认证「建议收藏」

目录是一个为查询、浏览和搜索优化的数据库,它成树状结构组织数据。目录数据库和关系数据库不同,它有优异的读性能,但写性能很差,没有事务处理、回滚等复杂操作,不适合存储修改频繁的数据。...如果返回多个或没有返回,说明用户输入用户名有误,验证失败。 4、如果上一步验证成功,得到用户信息所在entry的DN,使用这个DN和用户输入password重新绑定LDAP服务器。...绑定失败,返回密码错误的信息。 4.3 为什么需要两次绑定 为什么基于LDAP进行验证需要“两次”绑定? 为什么不能直接取出密码进行比较?...(根据属性的匹配规则) =* 存在(条目中必须有这个属性,但值不做限制) * 通配符(表示这个位置可以有一个或多个字符),当指定属性值时用到 \ 转义符(当遇到“*”,“(”,“)”时进行转义) 五、如何在系统中集成..., LDAPConnection.SCOPE_SUB, filter, null, false); LDAPEntry nextEntry, nextUserEntry; while (results.hasMore

3.6K20
  • 自己动手实现一个简单的JSON解析器

    比如: 第一个字符是{、}、[、]、,、:,直接封装成相应的 Token 返回即可 第一个字符是n,期望这个词是null,Token 类型是NULL 第一个字符是t或f,期望这个词是true或者false...如果满足期望了,则返回 Token,否则返回错误。下面就来看看词法解析器在碰到第一个字符是n和"时的处理过程。...2.2 语法分析 当词法分析结束后,且分析过程中没有抛出错误,那么接下来就可以进行语法分析了。...否则,抛出异常,并退出 重复步骤1和2,直至所有的 Token 都解析完,或出现异常 上面的步骤并不复杂,但有可能不好理解。...如此循环下去,直至 Token 序列解析结束或者抛出异常退出。 上面的解析流程虽然不是很复杂,但在具体实现的过程中,还是需要注意一些细节问题。

    1.4K10

    自己动手实现一个简单的JSON解析器

    比如: 第一个字符是{、}、[、]、,、:,直接封装成相应的 Token 返回即可 第一个字符是n,期望这个词是null,Token 类型是NULL 第一个字符是t或f,期望这个词是true或者false...如果满足期望了,则返回 Token,否则返回错误。下面就来看看词法解析器在碰到第一个字符是n和"时的处理过程。...2.2 语法分析 当词法分析结束后,且分析过程中没有抛出错误,那么接下来就可以进行语法分析了。...如此循环下去,直至 Token 序列解析结束或者抛出异常退出。 上面的解析流程虽然不是很复杂,但在具体实现的过程中,还是需要注意一些细节问题。...参考 一起写一个JSON解析器 如何编写一个JSON解析器 介绍JSON 写一个 JSON、XML 或 YAML 的 Parser 的思路是什么?

    4K190

    徒手撸一个JSON解析器

    比如: 第一个字符是{、}、[、]、,、:,直接封装成相应的 Token 返回即可 第一个字符是n,期望这个词是null,Token 类型是NULL 第一个字符是t或f,期望这个词是true或者false...如果满足期望了,则返回 Token,否则返回错误。 下面就来看看词法解析器在碰到第一个字符是n和"时的处理过程。...2.2 语法分析 当词法分析结束后,且分析过程中没有抛出错误,那么接下来就可以进行语法分析了。...如此循环下去,直至 Token 序列解析结束或者抛出异常退出。 上面的解析流程虽然不是很复杂,但在具体实现的过程中,还是需要注意一些细节问题。...最后,本文及实现主要参考了一起写一个JSON解析器和如何编写一个JSON解析器两篇文章及两篇文章对应的实现代码,在这里向着两篇博文的作者表示感谢。

    79320

    手写了一个简单的JSON解析器,网友直乎:牛!

    比如: 第一个字符是{、}、[、]、,、:,直接封装成相应的 Token 返回即可 第一个字符是n,期望这个词是null,Token 类型是NULL 第一个字符是t或f,期望这个词是true或者false...如果满足期望了,则返回 Token,否则返回错误。下面就来看看词法解析器在碰到第一个字符是n和"时的处理过程。...否则,抛出异常,并退出 重复步骤1和2,直至所有的 Token 都解析完,或出现异常 上面的步骤并不复杂,但有可能不好理解。...如此循环下去,直至 Token 序列解析结束或者抛出异常退出。 上面的解析流程虽然不是很复杂,但在具体实现的过程中,还是需要注意一些细节问题。...最后,本文及实现主要参考了一起写一个JSON解析器和如何编写一个JSON解析器两篇文章及两篇文章对应的实现代码,在这里向着两篇博文的作者表示感谢。 好了,本文到此结束,祝大家生生活愉快!再见。

    1.4K30

    如何自定义Tomcat Realm实现我们的用户认证需求「建议收藏」

    如何配置使用Tomcat自带的几种Realm? 3. 如何配置使用我们自定义的Realm?...你可以将Realm看做Unix系统里的group组概念,因为访问应用程序中特定资源的权限是被授予了拥有特殊角色的用户,不是相关的用户名。通过用户名相关联,一个用户可以有任意数量的角色。...代码不是很复杂但有两千多行,这里就不贴出来了,有需要的可以在下面回复邮箱,我可以发送给你们。...服务器的配置,关于LDAP如何使用可以查询相关资料,不在本文讨论范围内。...当这个Realm的authenticate()方法被调用,用户指定的(明文)密码被相同的运算法来加密,它的结果与Realm返回的值作比较。

    1.1K30

    Apache Log4j2拒绝服务漏洞分析

    可以构造出Payload使程序lookup本地,本地不可能开LDAP Server,于是发生超时等待,也许会有拒绝服务漏洞的可能 于是修改了RC2的源码,加入了统计时间代码,分析lookup的超时情况...(下文分析为什么阻塞的方法不是looup而是context.getAttributes) if (!...try { this.connect(false); } ... } 回到之前的问题:为什么阻塞的不是lookup而是getAttributes方法 当前代码在连接超时后会抛出异常...,如何实现真正的拒绝服务攻击,让目标网站无法正常处理别人的请求呢?...再没有必要做进一步的分析了,这个拒绝服务漏洞原理已经清晰了 0x04 CVE利用场景 CVE中提到的利用场景应该更为广泛 通常情况下,记录登录用户的身份等信息是常见的操作 如果程序员选择了Log4j2这种ctx记录的方式不是手动拼接字符串

    90730

    Java反序列化(十二) | Fastjson②1.2.24-68总结

    整个利用流程如下 1.首先开启HTTP服务器,并将我们的恶意类放在目录下 2.开启恶意RMI服务器 3.攻击者控制url参数为上一步开启的恶意RMI服务器地址 4.恶意RMI服务器返回ReferenceWrapper...(fastjson >= 1.2.25默认为false) 漏洞简介: 基于黑名单绕过。...com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl,之前学习已经写过很多,这里就不分析了,只写下几个要点: _bytecodes是构造的恶意类代码,且父类是AbstractTranslet,如果父类不是这个则会抛出异常...Fastjson反序列化漏洞利用的核心是parseObject利用@type来触发getter和setter,JdbcRowSetImpl类中就有一个setAutoCommit方法会被执行。...,如果它开启了,则会在checkAutoType中直接抛出异常,换句话说就是完全禁止了autoType。

    81040

    Python 工匠:异常处理的三个好习惯

    KeyError、ValueError、TypeError等更是日常编程里随处可见的老朋友。 异常处理工作由“捕获”和“抛出”两部分组成。...恰当的使用 raise 主动“抛出”异常,更是优雅代码里必不可少的组成部分。 在这篇文章里,我会分享与异常处理相关的 3 个好习惯。...那么这样的问题就根本不会发生,精准捕获包括: 永远只捕获那些可能会抛出异常的语句块 尽量只捕获精确的异常类型,不是模糊的 Exception 依照这个原则,我们的样例应该被改成这样: from requests.exceptions...# 告诉我们。...如果你用过 requests 模块,你可能已经发现它请求页面出错时所抛出的异常,并不是它在底层所使用的 urllib3 模块的原始异常,而是通过 requests.exceptions 包装过一次的异常

    60440
    领券