金字塔

pyramid_ipauth的Python项目详细描述


一种设置身份和有效性的金字塔认证策略 基于请求的远程IP地址的主体。

概述

要执行基于IP地址的身份验证,请创建IPAuthenticationPolicy 并指定目标IP范围、用户ID和有效主体。然后设置它 作为配置程序中的身份验证策略:

authn_policy = IPAuthenticationPolicy("127.0.*.*", "myuser", ["locals"])
config.set_authentication_policy(authn_policy)

这将导致来自127.0.*.*范围内IP地址的所有请求 身份验证为用户“myuser”,并具有有效的主体“locals”。

也可以在部署中指定配置选项 文件:

[app:pyramidapp]
use = egg:mypyramidapp

ipauth.ipaddrs = 127.0.0.* 127.0.1.*
ipauth.principals = locals

然后,您可以简单地将棱锥体ipauth包包含到配置程序中:

config.include("pyramid_ipauth")

它将检测ipauth设置并构造适当的策略。

注意,这个包只支持与一组IP进行匹配 地址。如果需要为不同的集合分配不同的凭据 在IP地址中,您可以结合使用金字塔多身份验证包 使用金字塔路径:

http://github.com/mozilla-services/pyramid_multiauth

如果您不想在配置时硬编码用户id或主体, 您可以指定一个“get_userid”和/或“get_principals”回调。

指定IP地址

IP地址可以以多种形式指定,包括:

  • “all”: all possible IPv4 and IPv6 addresses
  • “local”: all local addresses of the machine
  • “A.B.C.D” a single IP address
  • “A.B.C.D/N” a network address specification
  • “A.B.C.*” a glob matching against all possible numbers
  • “A.B.C.D-E” a glob matching against a range of numbers
  • a whitespace- or comma-separated string of any of the above
  • a netaddr IPAddress, IPRange, IPGlob, IPNetork of IPSet object
  • a list, tuple or iterable of any of the above

代理< /H2>

默认情况下,此模块不尊重x-forwarded-for头,因为它 很容易被恶意客户端欺骗。如果您的服务器位于 设置x-forwarded-for头的受信任代理,应该显式地 声明这样的可信代理集:

IPAuthenticationPolicy("127.0.*.*",
                       principals=["local"],
                       proxies = "127.0.0.1")

可以使用与 要验证的IP地址集。

0.3.3-2017年2月2日

  • 修复在空白处拆分ipset字符串的问题;谢谢@kaleposhobios

0.3.2-2017年1月22日

  • 解决一些警告并清理一些测试;谢谢scott searcy

0.3.1-2016年3月18日

  • python3兼容性的修复程序

0.3.0-2016年3月18日

  • 添加对python3的支持

0.2.0-2013年10月14日

  • 添加get_userid和get_principals回调函数;谢谢mrijken
  • 必要时将负责人转换为列表;谢谢Janakj

0.1.1-2012年1月30日

  • 将许可证更新为MPL 2.0

0.1.0-2011年11月11日

  • 初始版本

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

推荐PyPI第三方库


热门话题
使用MongoDB进行java漏斗分析?   java如何重构此代码以仅执行一次方法logViolation(),并在单个字符串中获取字符串变量(speedType)的所有值   java如何将方向向量转换为角度?   Java中json文件中的股票价格   java有没有一种方法可以查看网站中的哪些资源加载了selenium?   java文件定位器可以指向不同文件服务器上的目录吗?   java GWT等待SetVisibleRange和ClearData完成   macos Java Applet无法在Mac OS下接收鼠标输入   java BottomNavigationView不支持单次单击必须单击两次   MS SQL Server 2012中的java:我的数据库名称是J.3.0.0\u DEV我无法在Oracle SQL Developer IDE中连接它?   java对JFileChooser的修改,只显示文件夹内容   java如何将动态对象查询更改为criteria builder或更好的性能   java中的swing新字体类型   java Hibernate。删除未使用的条目   上载CSV文件并将其转换为Java模型对象   java如何将信息添加到库的日志消息中?   JavaEclipseGit:使用egit从另一个分支、标记或引用打开版本   使用Firebase控制台消息的java开放视频