java - LDAP 身份验证问题

标签 java ldap

我必须连接到 LDAP,但无法使用 Java 代码进行连接,并且使用 LDAPAdmin 工具进行连接。

String url = "ldap://host name:389";
ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");   
ldapEnv.put(Context.PROVIDER_URL,  url);   
ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple");
ldapEnv.put(Context.SECURITY_PRINCIPAL, "CN=username");
ldapEnv.put(Context.SECURITY_CREDENTIALS, "#1223");

错误

  Search error: javax.naming.AuthenticationException: [LDAP: error code 49 -
  80090308: LdapErr: DSID-0C0903CF, comment: AcceptSecurityContext error, data 52e, v2580

最佳答案

一旦看到这个..这对我来说效果很好,这可能对你有帮助。 谢谢..

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
public class LdapContextCreation {
    public static void main(String[] args) {
        LdapContextCreation ldapContxCrtn = new LdapContextCreation();
        LdapContext ctx = ldapContxCrtn.getLdapContext();
    }
        public LdapContext getLdapContext(){
            LdapContext ctx = null;
            Hashtable env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY,  "com.sun.jndi.ldap.LdapCtxFactory");
            env.put(Context.SECURITY_AUTHENTICATION, "Simple");  
            env.put(Context.SECURITY_PRINCIPAL, "cn=company,dc=example,dc=com");         
            env.put(Context.SECURITY_CREDENTIALS, "pasword");          
            env.put(Context.PROVIDER_URL, "ldap://localhost:389"); 
            try{
            ctx = new InitialLdapContext(env, null);           
            System.out.println("Connection Successful.");  
            }catch(NamingException nex){       
                System.out.println("LDAP Connection: FAILED");      
                nex.printStackTrace();
                }      
            return ctx;
                }

        }

关于java - LDAP 身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36628110/

相关文章:

java - 如何在 Java REST/AngularJS 前端获取 JSON

java - 如何限制沙盒 Java 代码的性能?

java - 根据 sn 和给定名称的 3 个字符动态分配唯一的 UID 值

ssl - 当父域是非 SSL 时如何使用 LDAPS 创建子域?

spring-security - 使用 Spring Security 3 进行 LDAP 身份验证

java - 将身份服务器 5.1.0 配置为 LDAP 服务器并测试连接的最佳方法

java - 无法通过反射/Spring-boot-devtools 设置字段值

java - 如何使用 Google 日历范围?

java - 前台通知操作不发送广播

active-directory - 为什么公司不将LDAP用作用户以外的中央存储库?