用于处理外部标识的django中间件。

django-identity-external的Python项目详细描述


简化外部身份消费的中间产品集 用django web框架建立web项目中的信息。

identity.external.persistenremoteusermiddlewarevar

当非标准(不同于REMOTE_USER)环境变量为 用于传递有关外部身份验证用户的信息 中间件可用于自定义变量名,而无需编写 python代码。

例如,当使用来自某个身份验证的信息时 http代理,http请求头值作为前缀HTTP_传递 环境变量。如果经过身份验证的用户名位于X-Remote-User http请求头,在^{tt4}中可用$ 环境变量。正在将变量REMOTE_USER_VAR设置为 HTTP_X_REMOTE_USER,例如使用apache http server指令

SetEnv REMOTE_USER_VAR HTTP_X_REMOTE_USER

并启用identity.external.PersistentRemoteUserMiddlewareVarin MIDDLEWARE之后的列表 django.contrib.auth.middleware.AuthenticationMiddleware喜欢

MIDDLEWARE = [
        ...
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'identity.external.PersistentRemoteUserMiddlewareVar',
        ...
]

将运行django.contrib.auth.middleware.PersistentRemoteUserMiddleware 值来自环境变量HTTP_X_REMOTE_USER

identity.external.remoteuserattrmidware

当用户通过外部身份验证时,例如通过 django.contrib.auth.middleware.RemoteUserMiddlewaredjango.contrib.auth.middleware.PersistentRemoteUserMiddleware,附加 外部身份验证源可以提供用户属性。

这个中间件将更新用户的电子邮件地址、名字和姓氏, 和组成员资格,组的前缀是ext:with information coming 从环境变量

  • REMOTE_USER_EMAIL
  • REMOTE_USER_FIRSTNAME
  • REMOTE_USER_LASTNAME
  • REMOTE_USER_GROUP_N
  • REMOTE_USER_GROUP_1REMOTE_USER_GROUP_2,…
  • REMOTE_USER_GROUPS

其中,这些变量的REMOTE_USER前缀可以用 REMOTE_USER_VAR环境变量,就像 identity.external.PersistentRemoteUserMiddlewareVar

位于外部组admins(从而被分配到组的用户 ext:admins在django中)也将获得is_staff标志集,因此 将能够登录到管理应用程序。

必须在django数据库中为 要在其中更新的用户成员身份。

MIDDLEWARE列表中,此中间件必须在 验证中间件,例如

MIDDLEWARE = [
    ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.PersistentRemoteUserMiddleware',
    'identity.external.RemoteUserAttrMiddleware',
    ...
]

另请参见

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java BufferedReader未返回   python使用javax从Java调用Jython。脚本   java如何为我的程序获得正确的输出(字符串格式)?   java我选择UDP作为我的对等2对等服务,我如何证明它在我的情况下是可靠的   多线程Java大型线程池性能问题   java将ActionListener与GUI类分离,无法正常工作   java如何管理内存中的视频帧   java如何在Spring mvc和mongodb中下载文件   使用TestNG和maven调试java应用程序   java转换和片段   java日语字符在ReadOnlySharedStringsTable中未正确显示   对象属性如何满足Java编译器关于设置SimpleObject属性的未检查警告   java字符串。replaceAll比自己做这项工作要慢得多   多线程如何在Java中的线程之间共享Hashmap?   java不正确的AVA格式:BlackBerry WebWorks SDK   线程“main”java中出现异常。lang.ArrayIndexOutOfBoundsException:索引1超出长度1的界限   java为什么这个处理代码会创建递减轨迹?   java tapestry4:从IEngineService实现访问访问对象   java动态分配多维字符串数组的大小和元素