对于新客户端,我必须用 LDAP 替换应用程序的 JAAS 身份验证。
流程转到 javax.security.auth.login.LoginContext 类的 login() 。这里有两个步骤来验证
// 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.
最佳答案
配置的 LoginModule 从其 commit() 方法返回 false。如果它自己的登录方法成功,它应该返回true。
关于java - 在 LoginContext 类中提交身份验证时,LDAP 身份验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12281692/