就像标题说的那样:为什么没有授权策略就不能使用身份验证策略?
仅设置身份验证策略将导致:
pyramid.exceptions.ConfigurationExecutionError: <class 'pyramid.exceptions.ConfigurationError'>:
Cannot configure an authentication policy without also configuring
an authorization policy (use the set_authorization_policy method)
显然,同时指定这两种策略通常很有意义……但是为什么金字塔会强迫您同时指定这两种策略?
我仅指定身份验证策略的动机(可能是幼稚的)是,目前,我希望“手动”处理授权,而不会涉及Pyramid的授权“东西”.
解决方法:
没有令人信服的理由为什么需要授权策略.我能说的是,值得尝试使系统适合ACLAuthorizationPolicy或构建自定义的.如果您不愿意采用这种方式,只需添加acl策略,不必担心.策略非常懒惰,只有在您对视图使用权限或通过has_permission调用时才调用策略.