在Django中通过LDAP进行身份验证时填写电子邮件

时间:2014-02-03 16:40:10

标签: python django ldap

我已成功在DJANGO中设置RemoteUserMiddleware以从Apache获取REMOTE_USER字段并使用它通过Django进行身份验证。

如何使用REMOTE_USER填充Django中的电子邮件字段?所有用户的域都相同,所有用户在通过LDAP进行身份验证时都会在Django中自动创建。注意,我没有使用django_auth_ldap模块。

1 个答案:

答案 0 :(得分:2)

好像你应该继承RemoteUserBackend并在AUTHENTICATION_BACKENDS而不是RemoteUserBackend中使用自定义后端类;在您的自定义后端类中,您可以覆盖configure_user方法并设置用户的电子邮件:

from django.contrib.auth.backends import RemoteUserBackend

class MyRemoteUserBackend(RemoteUserBackend):

    MY_DOMAIN = 'my.domain.tld'

    def configure_user(self, user):
        user.email = '%s@%s' % (user.username, self.MY_DOMAIN)
        user.save()
        return user

settings模块中:

AUTHENTICATION_BACKENDS = ('your.custom.backend.module.MyRemoteUserBackend',)