首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >处理PermissionDenied异常的主要最佳实践

处理PermissionDenied异常的主要最佳实践
EN

Stack Overflow用户
提问于 2013-11-19 10:36:09
回答 1查看 2.6K关注 0票数 9

我是新的书面瓶,目前使用flask-principal作为我的授权机制。当用户试图在没有所需权限的情况下访问url时,烧瓶主体会引发PermissionDenied异常。

它会导致我的系统抛出一个500 internal server错误。

如何捕获特定的异常并将用户重定向到警告页面?如果您可以共享一个代码示例,这将非常有用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 11:06:14

您可以告诉烧瓶-主体,您想要引发特定的HTTP错误代码而不是:

代码语言:javascript
运行
复制
@app.route('/admin')
@admin_permission.require(http_exception=403)
def admin(request):
    # ...

现在将调用flask.abort()而不是引发PermissionDenied。对于403错误代码,您可以注册一个错误处理程序

代码语言:javascript
运行
复制
@app.errorhandler(403)
def page_not_found(e):
    session['redirected_from'] = request.url
    return redirect(url_for('users.login'))

其中,url_for('users.login')将返回登录页面的路由URL。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20069150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档