2014-05-14 130 views
1

我试图在基本身份验证的我的应用程序中启用“用户限制的资源访问”。 http://python-eve.org/authentication.html#user-restricted-resource-access用户限制的资源访问

的问题是,因为我启用它,我得到的API“500错误”

如果我火了无基本身份验证PARAMS的API我得到一个坏证书错误每个HTTP请求,所以基本验证工作正常。

这是前夜DEBUG输出:

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1836, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1820, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1403, in handle_exception 
    reraise(exc_type, exc_value, tb) 
    File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1817, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1477, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1381, in handle_user_exception 
    reraise(exc_type, exc_value, tb) 
    File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1475, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1461, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "/usr/local/lib/python2.7/dist-packages/Eve-0.3-py2.7.egg/eve/methods/common.py", line 226, in rate_limited 
    return f(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/Eve-0.3-py2.7.egg/eve/auth.py", line 43, in decorated 
    if not auth.authorized(roles, resource_name, request.method): 
    File "/usr/local/lib/python2.7/dist-packages/Eve-0.3-py2.7.egg/eve/auth.py", line 97, in authorized 
    allowed_roles, resource, method) 
    **File "/home/maanuel/emberv/eve/run.py", line 12, in check_auth 
    self.set_request_auth_value(account['_id']) 
AttributeError: 'BCryptAuth' object has no attribute 'set_request_auth_value'** 

这似乎是set_request_auth_class缺少

我使用的是easy_install的

+0

[GitHub存储库中的bcrypt示例](https://github.com/nicolaiarocci/eve/blob/develop/examples/security/bcrypt.py)看起来简单得多。 –

+0

我拥有它! 来自'eve.auth'类的'set_request_auth_class()'方法在v 0.4中首次可用,而不是在我使用的v.03中。在0.3中,它是一个名为'request_auth_value'的类属性,您必须设置。 - >查看changelog http://python-eve.org/changelog.html#version-0-4 – user3636288

+0

听起来像你有一个[self-answer](http://meta.stackexchange.com/questions/ 17463/can-i-answer-my-own-questions-even-if-i-know-the-answer-before-asking)即将到来! –

回答

0

您正在阅读关于发展的文件安装0.3前夕版本(正如所有页面上所述,python-eve.org。)与v0.4一起的一个相关更改是设置验证令牌的方式。所以基本上,你正在向Eve v0.3申请0.4-dev的语法。您应该按照these instructions来代替。

PS:0.4很快就会发布,因此您可能想要坚持使用该版本,因此您不必马上更新代码。

+0

谢谢,我正在锁定到v0.4发布,尤其是修复https://github.com/nicolaiarocci/eve/问题/ 307,所以你不必使用dev HEAD来获得特定的端点级别认证 – user3636288

+0

真正想在本周发布之前,我会在下周参加pycon瑞典和意大利的比赛,但看起来它必须稍微等一下更长 - 对此感到遗憾。 –

+0

不用担心,无论如何,你的伟大的工作与前夕 – user3636288