如何为MANTIS -LDAP和数据库用户设置双重身份验证



我们有一个MANTISBT实例,我们设法设置了LDAP身份验证,但是我们还需要根据MANTIS的用户(与某些用户的LDAP分开(启用身份验证非常相似(Ruby的问题。

不幸的是,似乎您可以轻松地设置螳螂以通过LDAP或通过其用户进行身份验证,但是启用两个身份验证协议是有问题的。您有任何建议吗?

查看源代码,在实际执行身份验证的函数auth_does_password_match()中:

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身份验证成功,但不能以其他方式尝试使用其他auth方法,则要求仅返回 ldap_authenticate()的返回值。第一个条件看起来像这样:

    if (LDAP == $t_configured_login_method && ldap_authenticate($p_user_id, $p_test_password)) {
        return TRUE;
    }

要使事情正确,您可以为t_configured_login_method创建自己的常数,以便您可以添加自己的逻辑并不要干扰其他AUTH方法。

最新更新