Pyramid 2.x 中的 Pyramid Auth 类

问题描述 投票:0回答:1

我正在致力于将项目从 Pyramid 1.4 升级到 2.x,并且由于 AuthTktAuthenticationPolicy 和 ACLAuthorizationPolicy 的弃用而遇到了障碍。这些是我的身份验证和授权系统的支柱,我不确定如何过渡到 Pyramid 2.x 中的新实现。

如果有任何有关如何使用 Pyramid 2.x 中推荐的方法替换这些已弃用的类的指导或示例,我将不胜感激。以下是我当前设置的片段:

from pyramid.authentication import AuthTktAuthenticationPolicy
from pyramid.authorization import ACLAuthorizationPolicy
from pyramid.config import Configurator


def main(settings):
    authn_policy = AuthTktAuthenticationPolicy(
        "somesecret123", cookie_name="session-id", wild_domain=True, hashalg="sha512"
    )
    authz_policy = ACLAuthorizationPolicy()

    config = Configurator(
        settings=settings,
        authentication_policy=authn_policy,
        authorization_policy=authz_policy,
    )

我尝试过查看文档,但无法从中拼凑出解决方案。

python authentication authorization pyramid
1个回答
0
投票

有两个已发表的有关此内容的文档,第一个是关于如何升级的2.0 发行说明的摘录。以及官方文档中 wiki2 应用程序教程中的完整示例。

您提供的代码的更新示例是:

from pyramid.authentication import AuthTktCookieHelper
from pyramid.csrf import CookieCSRFStoragePolicy

class MySecurityPolicy:
    def __init__(self, secret):
        self.authtkt = AuthTktCookieHelper(
            secret,
            cookie_name='auth_tkt',
            wild_domain=True, 
            hashalg="sha512")
        
def includeme(config):
    settings = config.get_settings()
    config.set_csrf_storage_policy(CookieCSRFStoragePolicy())
    config.set_default_csrf_options(require_csrf=True)
    config.set_security_policy(MySecurityPolicy('somesecret123'))
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.