我使用django-auth-ldap連接到LDAP服務器進行身份驗證。 django-auth-ldap提供設置AUTH_LDAP_REQUIRE_GROUP
,該設置可用於僅允許放置在特定組中的用戶訪問。這工作正常,但該選項只允許檢查一個組;我想檢查一個用戶是否被放置在一個或另一個組中。定製/擴展/猴子補丁Django Auth後端
在模塊django_auth_ldap/backend.py
中,我可以修改LDAPUser(object)
類的方法_check_required_groups
來實現此行爲。直接修改它可以正常工作,但由於更改源代碼會在維護地獄中最終結束,因此我正在尋找一種解決方案來更改此方法而不觸及源代碼。兩個想法我有:
1)猴子修補
更改LDAPUser
類的實例的方法_check_required_groups
。問題是我不知道它在哪裏實例化。我只是在設置文件中使用從django_auth_ldap.config
導入的LDAPSearch
和GroupOfNamesType
,並將字符串django_auth_ldap.backend.LDAPBackend
傳遞給AUTHENTICATION_BACKENDS
元組。
2)擴展模塊
創建自己的模塊中,擴展原始django_auth_ldap
並使用該代替原來的。我試圖創建一個新的目錄,添加__init__.py
與行:
from django_auth_ldap import *
但是使用這個模塊不能正常工作,因爲它無法導入custom_auth.config
。
任何其他建議或提示如何使其中一個嘗試工作?