java - 如何使用 JNDI 在 java 中强制执行 LDAP bindRequest?

标签 java authentication ldap bind jndi

我有一个到 LDAP 服务器(本例中为 Active Directory)的 JNDI 连接。我还 ctx.extendedOperation( new StartTlsRequest() ) 来获得安全连接。

在此连接上我需要验证凭据。我可以使用登录

ctx.addToEnvironment( Context.SECURITY_AUTHENTICATION, "simple" );
ctx.addToEnvironment( Context.SECURITY_PRINCIPAL, principal );
ctx.addToEnvironment( Context.SECURITY_CREDENTIALS, credentials );

但是,“bindRequest”命令仅在对 JNDI 上下文执行下一个操作时通过 ldap 发出。但我不想用它做任何事。我只需要检查凭据。有没有办法强制执行“bindRequest”?

否则,我应该将操作用作我自己的 NOP 吗?搜索不存在的对象或者我应该查询某个存在的对象的某些属性或......?它需要速度快,不应该在服务器端创建任何工作,并且应该使用尽可能少的带宽。 (因为事实上,行动从一开始就不应该是必要的......)

问候, 史蒂芬

最佳答案

LdapContext.reconnect() 执行 LDAP 绑定(bind)。

关于java - 如何使用 JNDI 在 java 中强制执行 LDAP bindRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348867/

相关文章:

java - 使用 Apache POI 访问单元格时出现 NullPointerException

java - 在 Spring-Boot 中配置 bean

objective-c - 使用 NSURLConnection 强制身份验证而不是使用委托(delegate)方法是更快/更好的方法吗?

authentication - oriceon/oauth-5-laravel twitter 401 需要授权错误

java - 如何在java的控制台输出中打印带下划线的字符串

java - java中有没有更好的并行调用api的方法?

django - django.contrib.auth.User在Django源代码中定义在哪里

java - 在 Java 中获取 LDAP 架构

c# - 为什么在 active directory 组中不能创建为 groupType = Local

spring - 如何将 spring security 从 ldap 更改为 ldap starttls