0

新しいクライアントの場合、アプリケーションの JAAS 認証を LDAP に置き換える必要があります。
フローはjavax.security.auth.login.LoginContextクラスの login() に進みます。ここでは、認証するための2つのステップがあります

// module invoked in doPrivileged
        invokePriv(LOGIN_METHOD);
        invokePriv(COMMIT_METHOD);

invokePriv(LOGIN_METHOD);JAAS ログイン クラスまたは LDAP ログイン クラスに移動し、loginSucceeded = true として返されます。
ただしinvokePriv(COMMIT_METHOD);、LDAP ログインには失敗します。API でデバッグしている間、この行のステータスに対して false を返しています

boolean status = ((Boolean)methods[mIndex].invoke
                (moduleStack[i].module, args)).booleanValue();

私はこの問題について完全に無知です。API クラスであるため、デバッグ中に変数の値を確認できません。
LDAP 認証中の IntialContext の作成が JAAS API の LoginContext を台無しにしている可能性があります。

Note: I know there is a JAASLDAP module available. I will be implementing that in next iteration. 
4

1 に答える 1

1

構成済みの LoginModule がその commit() メソッドから false を返しています。独自のログイン メソッドが成功した場合は true を返す必要があります。

于 2012-09-05T23:51:51.947 に答える