LDAP: código de erro 49-80090308: LdapErr: DSID-0C0903A9, comentário: AcceptSecurityContext error, data 52e, v1db1
LDAP: código de erro 49-80090308: LdapErr: DSID-0C0903A9, comentário: AcceptSecurityContext error, data 52e, v1db1
Eu sei que o código" 52e " é quando o utilizador é válido, mas a senha é inválida. Estou usando o mesmo nome de usuário e senha em meu estúdio apache, eu fui capaz de estabelecer a conexão succesfully a LDAP.
Aqui está o meu código java.
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);
o meu erro está nesta linha.: ctx = new InitialDirContext(env);
7 answers
Dados 52e - Devolve quando o utilizador é válido, mas a senha/credencial é inválida.
Deves precisar de algo do tipo ...String dn = "cn=" + userName + "," + "CN=Users," + base;
Para mim, a questão resolveu-se quando pus a secção principal assim:
env.put(Context.SECURITY_PRINCIPAL, userId@domainWithoutProtocolAndPortNo);
52e 1326 ERROR_ LOGON_ FALLURE Devolve quando o utilizador é válido, mas a senha/credencial é inválida. Evitará que a maioria dos outros erros sejam exibidos como indicado.
Http://ldapwiki.com/wiki/Common%20Active%20Directory%20Bind%20Errors
Eu tive um problema semelhante ao usar AD em CAS , ou seja, erro 52e, em meu caso a aplicação aceita o nome completo quando na forma de CN= em vez do nome de usuário real.
Por exemplo, se você tivesse um usuário cujo nome completo é Ross Butler e seu nome de usuário de login é rbutler --você normalmente colocaria algo como,cn=rbutler,ou=usuários,dc=domínio, dc=com, mas o nosso falhou sempre. Ao mudar isso para cn=Ross Butler,ou=Users,dc=domain,dc=Com it passed!!
O LDAP está a tentar autenticar-se com o AD ao enviar uma transacção para outro DB do servidor. Esta autenticação falha porque o usuário mudou recentemente sua senha, embora esta transação foi gerada usando as credenciais anteriores. Esta autenticação irá continuar falhando até ... a menos que mude o estado da transacção para completar ou cancelar, caso em que o LDAP irá parar de enviar estas transacções.
No meu caso, tenho de usar algo como @ para fazer o login com sucesso.
Sample_user@sample_ Domain
Quando se usa o contexto.SECURITY_ authentication as "simple", you need to supply the userPrincipalName attribute value (user@domain_base).