我们有一个MantisBT实例,我们设法设置了LDAP身份验证,但是我们也需要在this question中为Ruby提供基于Mantis用户的身份验证(某些用户与LDAP分开)。 / p>
不幸的是,您似乎可以轻松地将Mantis设置为通过LDAP或通过其用户进行身份验证,但是同时启用两种身份验证协议都是有问题的。你有什么建议吗?
答案 0 :(得分:1)
在实际上执行身份验证的功能auth_does_password_match()
中,查看source code:
function auth_does_password_match( $p_user_id, $p_test_password ) {
$t_configured_login_method = config_get_global( 'login_method' );
if ( LDAP == $t_configured_login_method ) {
return ldap_authenticate( $p_user_id, $p_test_password );
}
# code continues with a try for each of the other authentication methods
# ...
}
第一个条件测试登录方法$t_configured_login_method
,如果它是“ LDAP”,则尝试进行相应的身份验证。好的,这里没有什么疯狂的,但是语句return ldap_authenticate(...);
不允许其他身份验证方法。
希望,修补补丁不是什么大问题,因此,如果LDAP身份验证失败,它可以回退到其他身份验证方法。
基本上,如果LDAP身份验证成功,则要求返回ldap_authenticate()
的返回值仅 ,否则就不能返回,以便代码可以继续尝试其他auth方法。第一个条件如下所示:
if (LDAP == $t_configured_login_method && ldap_authenticate($p_user_id, $p_test_password)) {
return TRUE;
}
为使事情正常进行,您可以为t_configured_login_method
创建自己的常量,以便可以添加自己的逻辑并且不会干扰其他身份验证方法。