IAuthorizationPolicy

时间:2018-06-18 12:07:06

标签: kinto

我试图在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参数,在其上我无法找到任何请求或缓存。

1 个答案:

答案 0 :(得分:0)

如果支持缓存,也可以在config.registry.cache访问缓存,因此我将其注入我的身份验证政策:

def includeme(config):
  custom_authorization_policy = CustomAuthorizationPolicy(config.registry.cache)
  config.set_authorization_policy(custom_authorization_policy)