从django admin的authenticate()中访问请求对象

时间:2017-01-13 11:31:47

标签: python django django-admin

无论如何可以在自定义身份验证后端的django管理员的身份验证()中访问请求对象吗?

原因是我想保留并重新使用用户的密码(或Kerberos票证 - 尚不确定)来授权另一个使用相同LDAP后端的系统中的操作。为此我想使用request.session - 但它似乎不可访问,至少不是简单的方法。

如果还有其他可能将auth中的值传递给模型,我也很乐意得到建议。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为出于安全原因在会话中存储原始密码是一个坏主意,但有些想法(只是想法,从未尝试过):

  1. 直接访问会话https://docs.djangoproject.com/en/1.10/topics/http/sessions/#using-sessions-out-of-views
  2. 确保您的会话不会被django.contrib.auth.login刷新。详见实施细节。

    1. user_logged_in信号可以访问请求和用户对象。
    2. user_logged_in.send(sender=user.__class__, request=request, user=user)

      看起来您可以在user后端方法中向authentication对象添加属性,然后将其附加到会话。