Java Spring ldap身份验证失败错误代码

Java Spring ldap身份验证失败错误代码,java,spring,active-directory,adam,spring-ldap,Java,Spring,Active Directory,Adam,Spring Ldap,我正在使用SpringLDAP 1.3.1与ADAM和Active Directory对话 当我尝试使用ldapTemplate.authenticate对某人进行身份验证时,我会通过错误回调返回错误,但它会给出一个非常通用的异常AuthenticationException,我无法提取问题的确切原因: 帐户禁用 密码过期 下次登录时必须更改密码 帐户过期 等 我得到的只是一条详细的信息,我想这是广告发回来的。比如: org.springframework.ldap.Authentication

我正在使用SpringLDAP 1.3.1与ADAM和Active Directory对话

当我尝试使用ldapTemplate.authenticate对某人进行身份验证时,我会通过错误回调返回错误,但它会给出一个非常通用的异常AuthenticationException,我无法提取问题的确切原因:

帐户禁用 密码过期 下次登录时必须更改密码 帐户过期 等 我得到的只是一条详细的信息,我想这是广告发回来的。比如:

org.springframework.ldap.AuthenticationException: [LDAP:错误代码49-8009030C: 文件编号:DSID-0C0903A9,备注: AcceptSecurityContext错误,数据773, v1db0

我可以看到数据773,这意味着用户必须在下次登录时更改密码。我不想手动解析。是否有我不知道的适配器

有人有过这个问题吗

非常感谢!

列出了ldap错误代码如何映射到JNDI异常。查看spring ldap代码,spring似乎将每个JNDI异常映射到其自定义ldap异常LdapUtils.convertLdapException

现在,773似乎特别适用于Active Directory。因此,如果需要,用户需要显式处理。列出了一系列Active Directory错误。Spring ldap将在其错误详细信息中提供此文本,让用户根据需要使用它们。

列出了ldap错误代码如何映射到JNDI异常。查看Spring ldap代码,它将说明spring将每个JNDI异常映射到其自定义LDAP异常LdapUtils.convertLdapException


现在,773似乎特别适用于Active Directory。因此,如果需要,用户需要显式处理。列出了一系列Active Directory错误。Spring ldap将在其错误详细信息中提供此文本,让用户根据需要使用它们。

如果您的代码以PasswordPolicyAwareContextSource.getContext结尾 或者在类似的spring代码中,spring不能很好地处理它。 帐户过期时会引发异常。上面的类捕获此异常 然后,这是关键,它调用 PasswordPolicyResponseControl ctrl=PasswordPolicyControlExtractor.extractControlctx; Spring然后调用ctrl.isLocked,但无法检查任何其他条件。
您应该重写Spring的代码,并且您可以检查ctrl.isExpired、ctrl.isChangeAfterReset,如果您的代码以PasswordPolicyAwareContextSource.getContext结尾,那么此时还有一堆其他信息获取程序可用 或者在类似的spring代码中,spring不能很好地处理它。 帐户过期时会引发异常。上面的类捕获此异常 然后,这是关键,它调用 PasswordPolicyResponseControl ctrl=PasswordPolicyControlExtractor.extractControlctx; Spring然后调用ctrl.isLocked,但无法检查任何其他条件。 您应该重写Spring的代码,您可以检查ctrl.isExpired、ctrl.isChangeAfterReset以及此时可用的一系列其他信息获取程序