作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个 MantisBT 实例,我们设法设置了 LDAP 身份验证,但我们还需要启用基于 Mantis 用户的身份验证(对于某些用户,与 LDAP 分开)非常类似于 this question用于 ruby 。
不幸的是,您似乎可以轻松地将 Mantis 设置为通过 LDAP 或通过其用户进行身份验证,但同时启用这两种身份验证协议(protocol)是有问题的。你有什么建议吗?
最佳答案
查看 source code ,在实际执行身份验证的函数 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 身份验证成功,它需要 ldap_authenticate()
的返回值仅返回,否则则不会,这样代码可以继续尝试其他身份验证方法。第一个条件看起来像这样:
if (LDAP == $t_configured_login_method && ldap_authenticate($p_user_id, $p_test_password)) {
return TRUE;
}
为了使事情正常进行,您可以为 t_configured_login_method
创建自己的常量,这样您就可以添加自己的逻辑并且不会干扰其他身份验证方法。
关于authentication - 如何为 Mantis - LDAP 和数据库用户设置双重身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56851998/
我是一名优秀的程序员,十分优秀!