2015-07-14 13 views
16

LDAP: mã lỗi 49-80.090.308: LdapErr: DSID-0C0903A9, bình luận: lỗi AcceptSecurityContext, dữ liệu 52E, v1db1LDAP: mã lỗi 49-80.090.308: LdapErr: DSID-0C0903A9, bình luận: lỗi AcceptSecurityContext, dữ liệu 52E, v1db1

Tôi biết mã "52e" là khi tên người dùng hợp lệ, nhưng mật khẩu không hợp lệ. Tôi đang sử dụng cùng một tên người dùng và mật khẩu trong studio apache của tôi, tôi đã có thể thiết lập kết nối thành công với LDAP.

Đây là mã java của tôi

String userName = "*******"; 
    String password = "********"; 
    String base ="DC=PSLTESTDOMAIN,DC=LOCAL"; 
    String dn = "cn=" + userName + "," + base; 
    Hashtable env = new Hashtable(); 
    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); 
    env.put(Context.PROVIDER_URL, "ldap://******"); 
    env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
    env.put(Context.SECURITY_PRINCIPAL, dn); 
    env.put(Context.SECURITY_CREDENTIALS, password); 
    LDAPAuthenticationService ldap = new LDAPAuthenticationService(); 
    // LdapContext ctx; 
    DirContext ctx = null; 
    try { 
     ctx = new InitialDirContext(env); 

lỗi của tôi là trên dòng này: ctx = new InitialDirContext(env);

Tôi không biết chính xác những gì đang gây ra lỗi này.

Trả lời

11

dữ liệu 52E - Returns when username is valid but password/credential is invalid.

Bạn có lẽ cần một cái gì đó giống như

String dn = "cn=" + userName + "," + "CN=Users," + base; 
+0

Bạn nên kiểm tra một cách tốt hơn để tìm người dùng: https://bitbucket.org/jwilleke/examples/src/dba1d74d172f9a3f13fc375f6d17370b6da91adf/Examples-JNDI/src/com/willeke/samples/ldap/jndi/BasicAdminSearchBind.java? tại = master – jwilleke

7

Đối với tôi vấn đề này được giải quyết khi tôi thiết lập các phần chính như sau:

env.put(Context.SECURITY_PRINCIPAL, [email protected]); 
+0

Tôi nên đặt dòng mã này ở đâu? – shubham12511

+0

@ sbmc7 Bạn thiết lập điều này trong môi trường HashTable mà bạn vượt qua trong khi instantiating javax.naming.ldap.InitialLdapContext tức là, context = new InitialLdapContext (env, null); Trường hợp env là một HashTable. – Vishal

0

LDAP đang cố gắng để xác thực với AD khi gửi một giao dịch khác DB server. Xác thực này không thành công vì người dùng gần đây đã thay đổi mật khẩu của mình, mặc dù giao dịch này được tạo bằng thông tin đăng nhập trước đó. Xác thực này sẽ tiếp tục thất bại cho đến khi ... trừ khi bạn thay đổi trạng thái giao dịch thành Hoàn tất hoặc Hủy trong trường hợp đó LDAP sẽ ngừng gửi các giao dịch này.

2

Tôi gặp sự cố tương tự khi sử dụng AD trên CAS, tức là lỗi 52e, Trong trường hợp đơn đăng ký của tôi chấp nhận Tên đầy đủ khi ở dạng CN = thay vì tên người dùng thực tế.

Ví dụ: nếu bạn có người dùng có tên đầy đủ là Ross Butler và tên người dùng đăng nhập của họ là rbutler - bạn thường đặt một cái gì đó như, cn = rbutler, ou = Người dùng, dc = domain, dc = com nhưng của chúng tôi thất bại mọi lúc. Bằng cách thay đổi thành cn = Ross Butler, ou = Người dùng, dc = domain, dc = com nó đã vượt qua !!

Các vấn đề liên quan