【发布时间】:2018-06-06 10:24:05
【问题描述】:
由于某种原因,如果我在登录后被我的应用程序重定向,如果我有附加到该视图的权限,但如果我删除该权限,一切都很好。我正在使用 AuthTktAuthenticationPolicy 并且我已经尝试添加以下回调:
def principalFinder(username, request):
return [Authenticated]
但这并没有改变任何东西。这是有问题的观点:
@view_config(route_name='test', context=myAERO, permission='editAln')
def test(request):
return Response(request.authenticated_userid)
如您所见,它使用 myAERO 类作为其上下文:
class myAERO():
__acl__ = [
(Allow, Authenticated, 'editAln')
]
def __init__(self, request):
self.request = request
现在,身份验证似乎没有问题,因为如果我从 @view_config() 装饰器中删除 permission='editAln' ,我的应用确实会显示返回我用来登录的用户名。
我对此感到非常困惑。我可以理解得到一个 403 禁止,但我就是不明白为什么我一直得到一个 404 状态码!我发现this question 似乎有些相关,但正如您所见,我根本没有使用 name 属性,所以它并没有真正帮助我。这是我第一次使用 Pyramid,在我看来,我试图用我的应用程序完成的事情(使用基于经过身份验证的用户的用户名的 JSON 响应来响应 XHR POST 请求)不应该那么难,所以我希望有人稍微多一点 Pyramid 的经验可以帮助我理解这一点。
【问题讨论】:
标签: python-3.x authentication authorization http-status-code-404 pyramid