Javaアプリケーションで提供されたユーザー名とパスワードが正しいかどうかをLDAPサーバーに問い合わせる必要があります。認証エラー49 javaアプリケーションでjndiを使用する52e - 無効なトークン
私は、この関数(それは私が例外メッセージを返すLDAPを探索するために使用していますテスト機能である)と、JNDIを使用して終了:私はcheckCredentials
呼び出しとして正しいldapUrl
(その中を通すことにより、
public static String checkCredentials(String securityPrincipal,
String password,
String ldapUrl,
String securityAuthentication)
{
String userVerify = "";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapUrl);
env.put(Context.SECURITY_AUTHENTICATION, securityAuthentication);
env.put(Context.SECURITY_PRINCIPAL, securityPrincipal);
env.put(Context.SECURITY_CREDENTIALS, password);
try {
DirContext authContext = new InitialDirContext(env);
userVerify = testDescription + " - Success";
authContext.close();
} catch (AuthenticationException authEx) {
userVerify = "AuthenticationException: " + authEx.getMessage();//"Authentication failed!";
} catch (NamingException namEx) {
userVerify = "NamingException: " + namEx.getMessage();//"Something went wrong!";
}
return userVerify;
}
私の場合はそれが私はいつも(関数はString
を返す)結果として取得)ldap://192.168.48.60:389
です:
含むAuthenticationException:[LDAP:エラー・コード49から80090308:LdapErr: DSID-0C0903A8コメント:AcceptSe curityContextエラー、データ部52e、v1db1]
このpageは(52E)それは認証エラー(49)であり、 "ユーザ名が有効ですが、パスワード/資格が無効である" と述べています。
私はsecurityPrincipal
のためにこれらのすべてを試してみました:
をジョン
ジョン@ mycompanyの
CN =ジョン、CONN
CN =ジョン、OU =内部ユーザー、DC =マイコンパニエ
password
とsecuirityAuthentication
は無視されているようです。
私はhttp://www.ldapadmin.org/からLDAP管理をインストールしようともそれからの私が取得:
LDAPエラーを!無効な資格情報:80090308:LdapErr:DSID-0C0903A8、 コメント:AcceptSecurityContextエラー、データ52e、v1db1。
無効なトークンが関数に渡されました。
何とか「無効なトークン」と表示されます。
任意のポインタ?ハマった。