金字塔中的强制认证

时间:2014-10-20 23:43:04

标签: python pyramid

我正在尝试构建一个必须进行身份验证的网站,即如果用户未登录则只显示登录页面。问题是如何以最低的成本实现。我可以用

装饰每个视图
permission='authenticated'

其中'authenticated'是我的许可的名称;但也许有一种更简单的方法,默认情况下所有视图都需要验证。

注意 我接受了下面的答案,但我相信还有更多内容。配置位:

config = Configurator(settings=settings,
                      default_permission='standard_view',
                      root_factory='RootFactory')

安全性 - 权限位:

class RootFactory(object):
    __acl__ = [(Allow, Authenticated, 'standard_view'),
               (Allow, 'g:admin', 'admin_view'),
    ]

1 个答案:

答案 0 :(得分:2)

通过在 default_permission 对象中设置 Configurator ,可以做到这一点。例如,在 __ init __。py 中,您可以使用类似的内容:

from pyramid.config import Configurator

def main(global_config, **settings):
    config = Configurator(settings=settings, default_permission='authenticated')
    config.include('pyramid_chameleon')
    config.scan()
    return config.make_wsgi_app()

您可以在以下三个链接中找到更多信息: http://docs.pylonsproject.org/docs/pyramid/en/latest/api/config.html http://docs.pylonsproject.org/docs/pyramid/en/latest/narr/security.html#setting-a-default-permission http://docs.pylonsproject.org/docs/pyramid/en/latest/api/config.html#pyramid.config.Configurator.set_default_permission