棱锥体选择验证

pyramid-selectauth的Python项目详细描述


pypitravis

自动选择 给定身份验证策略列表,为特定请求使用正确的策略

概述

selectableauthenticationpolicy是一个金字塔身份验证策略,它选择 另一个提供了iauthenticationpolicy对象,以提供不同的身份验证策略 根据具体要求。只需向它传递一个策略列表 应按顺序尝试,并注册“选定策略”请求方法 将选择并缓存要使用的正确策略:

policies = [
    IPAuthenticationPolicy("127.0.*.*", principals=["local"])
    IPAuthenticationPolicy("192.168.*.*", principals=["trusted"])
]
set_selectable_authentication_policy(config, policies)

本例使用金字塔ipauth模块分配有效主体 基于请求的原始IP地址。它结合了两种 使来自“127.0.*.*”的请求具有主体的策略 “本地”,而来自“192.168.*.*”的请求将具有主体 “值得信任”。

您可以使用create_selectable_authentication_policy工厂来创建 selectableauthenticationpolicy不设置实例:

policies = [
    IPAuthenticationPolicy("127.0.*.*", principals=["local"])
    IPAuthenticationPolicy("192.168.*.*", principals=["trusted"])
]
policy = create_selectable_authentication_policy(config, policies)
policy.add_policy(IPAuthenticationPolicy("10.0.*.*", principals=["not-so-trusted"]))
config.set_authentication_policy(policy)

您也可以使用config.include()来包含策略,然后添加子策略 在配置上使用注册的add_selectauth策略指令:

config.include('pyramid_selectauth')
config.add_selectauth_policy(IPAuthenticationPolicy("127.0.*.*", principals=["local"]))
config.add_selectauth_policy(IPAuthenticationPolicy("192.168.*.*", principals=["trusted"]))

政策选择方法

默认选择方法将在提供的 按顺序排列策略,并选择第一个不返回none的策略。

通过扩展selectableauthenticationpolicy和 用逻辑重写select_policy方法以选择 当前请求,然后指定工厂中的类:

class MyPolicy(SelectableAuthenticationPolicy):
    def select_policy(self, request):
        return self._policies[0]  # Always uses the first policy (very useful!)


policies = [
    IPAuthenticationPolicy("127.0.*.*", principals=["local"])
    IPAuthenticationPolicy("192.168.*.*", principals=["trusted"])
]
policy = create_selectable_authentication_policy(config, policies, _class=MyPolicy)
config.set_authentication_policy(policy)

展开设置

也可以将身份验证策略指定为 粘贴部署设置。考虑以下示例:

[app:pyramidapp]
use = egg:mypyramidapp

selectauth.policy_class = mypyramidapp.policies.MySelectAuthPolicy
selectauth.policies = mypyramidapp.policies.ipauthpolicyfactory mypyramidapp.policies.mypolicyfactory

要从这些设置配置身份验证,只需包含multiauth 进入配置程序的模块:

config.include("pyramid_selectauth")

1.0.1-2018年9月24日

  • 使用proxy_methoddecorator重构策略方法。

1.0.0-2018年9月23日

  • 生产准备释放。

0.0.4-2018年9月21日

  • 初次发布。

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

推荐PyPI第三方库


热门话题
java Grid loadmask(true)在gxt中不起作用   java将字符串索引转换为整数   为什么Java泛型适用于基元数组,但不适用于基元数组?   java如何让Azure应用程序服务Tomcat将所有80/443流量转发到运行在同一应用程序服务上的JBoss   具有多个值的java转换映射到树?   java如何设置SQL server连接URL?   java设置了多个相互独立的JFrame   安全性在JAVA中如何使用RSAPrivateKey的密码短语?   java不能使用比Apache Velocity中更大的条件   如何在Java中打印字符串的所有排列   停止Android Studio自动导入java。sql。日期   对象简单计算器程序java   java如何在安卓中使用“&”符号作为字符串?   java Connect,为我的安卓应用程序从REST API发布和获取数据