我试图在Kinto中实现自定义IAuthorizationPolicy
。文档指向https://docs.pylonsproject.org/projects/pyramid/en/latest/quick_tutorial/authorization.html,这并不能让我完全理解如何将我的IAuthorizationPolicy
添加到Kinto应用程序。
我的解决方案是将其变成插件,并实现includeme
函数,如下所示:
def includeme(config):
custom_authorization_policy = CustomAuthorizationPolicy()
config.set_authorization_policy(custom_authorization_policy)
但稍后,在IAuthorizationPolicy#permits
中,我想访问当前正在处理的request
。这是因为我想要cache the authentication tokens,而且据我所知,可以从request
访问缓存。
但是,IAuthorizationPolicy#permits
会使用context
参数,在其上我无法找到任何请求或缓存。
答案 0 :(得分:0)
如果支持缓存,也可以在config.registry.cache
访问缓存,因此我将其注入我的身份验证政策:
def includeme(config):
custom_authorization_policy = CustomAuthorizationPolicy(config.registry.cache)
config.set_authorization_policy(custom_authorization_policy)