pyramid.security

身份验证API函数

forget(request, **kw)[源代码]

返回头元组序列(例如 [('Set-Cookie', 'foo=abc')] )适用于“忘记”当前已验证用户拥有的一组凭据。在视图函数的主体中,一个常见的用法可能看起来是这样的。 (response 假定为 WebOb 风格 response 以前由视图代码计算的对象):

from pyramid.security import forget
headers = forget(request)
response.headerlist.extend(headers)
return response

如果没有 security policy 则此函数将始终返回空序列。

remember(request, userid, **kw)[源代码]

返回标题元组序列(例如 [('Set-Cookie', 'foo=abc')] )对此请求的响应。这些标头适用于“记住”传递的数据所隐含的一组凭据 userid*kw 使用当前 security policy 。在视图函数体中,常见用法可能如下所示 (response 被假定为 WebOb -样式 response 先前由视图代码计算的对象):

from pyramid.security import remember
headers = remember(request, 'chrism', password='123', max_age='86400')
response = request.response
response.headerlist.extend(headers)
return response

如果没有 security policy 则此函数将始终返回空序列。如果使用,则该词的组成和含义 **kw 必须得到调用代码和有效安全策略的同意。

在 1.6 版本发生变更: 不推荐使用 principal 支持……的论据 userid 以澄清其与安全政策的关系。

在 1.10 版本发生变更: 删除了已弃用的 principal 参数。

授权API函数

principals_allowed_by_permission(context, permission)[源代码]

自 2.0 版本弃用: 新的安全策略去掉了主体的概念。看见 升级身份验证/授权 了解更多信息。

如果提供一个 context (资源对象)和一个 permission 字符串,如果 authorization policy 是有效的,则返回一个序列 principal 中拥有权限的ID context 。如果没有有效的授权策略,这将返回具有单个值的序列 pyramid.authorization.Everyone (代表所有主体的特殊主体标识符)。

备注

即使是 authorization policy 实际上,某些(外来的)授权策略可能无法实现此功能所需的机制;这些策略将导致 NotImplementedError 调用此函数时引发的异常。

view_execution_permitted(context, request, name='')[源代码]

如果由指定的视图 contextnamepermission ,使用有效的身份验证/授权策略和 request 。返回布尔结果。如果没有 security policy 有效,或者如果视图不受权限保护,则返回 True 。如果找不到可以查看的视图,则会引发异常。

在 1.4a4 版本发生变更: 如果找不到视图,则引发异常。

常量

NO_PERMISSION_REQUIRED

一种特殊的权限,它指示视图应该始终由完全匿名的用户执行,而不管默认的权限是什么,都绕过任何 authorization policy 这可能是有效的。它的实际值是字符串 '__no_permission_required__' .

Everyone

名为的特殊主体id Everyone . 此主体id被授予所有请求。它的实际值是字符串 'system.Everyone' .

自 2.0 版本弃用: 搬到 pyramid.authorization.Everyone .

Authenticated

名为的特殊主体id Authenticated . 此主体id被授予包含任何其他非Everyone主体id的所有请求(根据 authentication policy ). 它的实际值是字符串 'system.Authenticated' .

自 2.0 版本弃用: 搬到 pyramid.authorization.Authenticated .

ALL_PERMISSIONS

可以用作 permission 无条件匹配所有权限的ACE成员。例如,使用 ALL_PERMISSIONS 可能是这样组成的: ('Deny', 'system.Everyone', ALL_PERMISSIONS) .

自 2.0 版本弃用: 搬到 pyramid.authorization.ALL_PERMISSIONS .

DENY_ALL

一个方便的速记王牌,定义了 ('Deny', 'system.Everyone', ALL_PERMISSIONS) . 在使用“继承”安全策略的系统中,这通常用作ACL中的最后一个ACE,表示“不继承任何其他ACE”的概念。

自 2.0 版本弃用: 搬到 pyramid.authorization.DENY_ALL .

返回值

Allow

ace“动作”(ace中的第一个元素,例如 (Allow, Everyone, 'read') 这意味着允许访问。ACL由一系列ace组成。它是一个字符串,它的实际值是 'Allow' .

自 2.0 版本弃用: 搬到 pyramid.authorization.Allow .

Deny

ace“动作”(ace中的第一个元素,例如 (Deny, 'george', 'read') 这意味着拒绝访问。ACL由一系列ace组成。它是一个字符串,它的实际值是 'Deny' .

自 2.0 版本弃用: 搬到 pyramid.authorization.Deny .

class Denied(s, *args)[源代码]

的实例 Denied 当与安全相关的API或其他 Pyramid 代码拒绝与ACL检查无关的操作。它的计算结果等于所有布尔错误类型。它有一个名为 msg 描述拒绝的情况。

static __new__(cls, s, *args)

创建新实例。

参数:
  • fmt -- 解释拒绝原因的格式字符串。

  • args -- 参数存储并与格式字符串一起使用,以生成 msg .

property msg

指示生成结果的原因的字符串。

class Allowed(s, *args)[源代码]

的实例 Allowed 当与安全相关的API或其他 Pyramid 代码允许与ACL检查无关的操作。它的计算结果等于所有布尔真类型。它有一个名为 msg 描述允许的情况。

static __new__(cls, s, *args)

创建新实例。

参数:
  • fmt -- 解释拒绝原因的格式字符串。

  • args -- 参数存储并与格式字符串一起使用,以生成 msg .

property msg

指示生成结果的原因的字符串。

class ACLDenied(ace, acl, permission, principals, context)[源代码]

的实例 ACLDeniedpyramid.security.Denied 表示对ACL进行的安全检查被拒绝。它的计算结果等于所有布尔错误类型。它还具有以下属性: aclacepermissionprincipalscontext . 这些属性表示请求中涉及的安全值。它的 __str__ 方法为调试目的打印这些属性的摘要。相同的摘要与 msg 属性。

自 2.0 版本弃用: 搬到 pyramid.authorization.ACLDenied .

static __new__(cls, ace, acl, permission, principals, context)

创建新实例。

参数:
  • ace -- 这个 ACE 匹配,触发结果。

  • acl -- 这个 ACL 包含 ace .

  • permission -- 所需的 permission .

  • principals -- 名单 principals 提供。

  • context -- 这个 context 提供 lineage 搜查。

property msg

指示生成结果的原因的字符串。

class ACLAllowed(ace, acl, permission, principals, context)[源代码]

的实例 ACLAllowedpyramid.security.Allowed 表示允许对ACL进行显式安全检查。它的计算结果等于所有布尔真类型。它还具有以下属性: aclacepermissionprincipalscontext . 这些属性表示请求中涉及的安全值。它的 __str__ 方法为调试目的打印这些属性的摘要。相同的摘要与 msg 属性。

自 2.0 版本弃用: 搬到 pyramid.authorization.ACLAllowed .

static __new__(cls, ace, acl, permission, principals, context)

创建新实例。

参数:
  • ace -- 这个 ACE 匹配,触发结果。

  • acl -- 这个 ACL 包含 ace .

  • permission -- 所需的 permission .

  • principals -- 名单 principals 提供。

  • context -- 这个 context 提供 lineage 搜查。

property msg

指示生成结果的原因的字符串。