- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是编写 flask 的新手,目前使用 flask-principal
作为我的授权机制。当用户试图在没有所需权限的情况下访问 url 时,flask-principal 会引发 PermissionDenied
异常。
它导致我的系统抛出一个 500 内部服务器
错误。
我怎样才能捕获特定的异常并将用户重定向到警告页面?如果您可以分享一个代码示例,那将非常有帮助。
最佳答案
您可以告诉 Flask-Principal 您想要引发特定的 HTTP 错误代码:
@app.route('/admin')
@admin_permission.require(http_exception=403)
def admin(request):
# ...
现在flask.abort()
将被调用而不是引发 PermissionDenied
。对于 403 错误代码,您可以注册一个 error handler。 :
@app.errorhandler(403)
def page_not_found(e):
session['redirected_from'] = request.url
return redirect(url_for('users.login'))
其中 url_for('users.login')
将返回登录页面的路由 URL。
关于python - Flask-Principal 处理PermissionDenied异常的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20069150/
我正在尝试使用 Powershell v5.1 压缩文件夹,但某些文件已被另一个进程使用,PS 无法强制或忽略它们。 Get-ChildItem "C:\folder" | Compress-Arch
我在 View 的 dispatch() 中编写了这样的代码来限制对特定用户的访问: if user.name != 'admin': raise PermissionDenied("you
在我们的项目中,我们使用了 django SessionMiddleware处理用户 session ,它工作正常。这里唯一的问题是 PermissionDenied发生异常,错误及其回溯将在控制台中
我的 android 构建在 appflow 中失败。我只是按照说明操作,不知道如何解决这个问题。 这是构建日志的最后一点: [07:25:07]: Building android... +----
每当不允许用户访问任何页面时,我正在使用 django 的 PermissionDenied 呈现 403.html。 有很多不同类型的页面,例如,产品页面,用户页面,用户联系信息,所有者信息。 我想
当使用 deno run app.ts 命令运行应用程序时,它给出了一个错误:Uncaught PermissionDenied error: Uncaught PermissionDenied: a
我想做谷歌收据验证。我通过 Marc Greenstock 设置所有内容.当我尝试验证购买时,我得到响应权限被拒绝。对我来说一切都是正确的,我不知道如何找出错误。用户在 Google Play 开发者
我们让项目在更多环境中运行,代码中的调用File.createNewFile()。 它适用于大多数环境(Win、Linux),但在 SunOS 上它调用 UnixFileSystem.createFi
我有一个具有我权限的模型,在我使用 CBV(generic.CreateView) 或 (generic.DetailView) 的 View 中,如果登录的用户具有权限,他可以访问该 View ,如
pnet's main doc page上的“以太网回显服务器”示例中使用的示例数据链路 channel 创建代码包括以下代码段: // Create a new channel, dealing w
我正在尝试测试 protected View 。未经身份验证的用户将重定向到登录页面。当我运行测试时,它引发了 django.cose.exceptions.PermissionDenied,这是正常
所以我尝试使用 AJAX 而不是 Django 处理 GET 请求,这样当出现 403 Forbidden (由 Django 给出)时,我可以使用 jQuery 显示一个简单的弹出窗口/模式,但是我
我正在尝试在 c 上为 android 创建一个 setuid 程序。我在 android 2.3-4.2 上对其进行了测试,它在除 Samsung Galaxy s4 (i9500) 之外的所有设备
我使用了 gcp 中的 AutoMl Vision api 并使用我的自定义数据集对其进行了训练。我能够预测 GCP 控制台的数据,但无法存储预测的输出。为了存储预测数据输出并使用我的本地数据进行预测
PermissionDenied:拒绝了“projects/XXXX-live/agent”上的403 IAM权限“dialogflow.sessions.detectIntent”。 创建服务时,我
我正在尝试使用Dialogflow的V2 API在Dialogflow代理中获取意图列表,但一直收到以下错误: PermissionDenied:拒绝'projects/xxxx/agent'上的40
不知道如何在这里询问要修复的问题,因为我不知道问题所在。是 1) google.api_core.exceptions.PermissionDenied: 403 请求的身份验证范围不足吗? 2) 在
当我尝试运行我的第一个 deno 程序时收到错误消息 deno run server.ts Error : Uncaught PermissionDenied: network access to "
在我们的 Tekton 管道中,我们希望使用 ArgoCD CLI 根据构建的应用程序动态执行 argocd 应用程序创建 和 argocd 应用程序同步。我们创建了一个新用户as described
我是一名优秀的程序员,十分优秀!