使用 Apache Superset 启用自定义错误页面(例如 404)的最佳方法是啥?
Posted
技术标签:
【中文标题】使用 Apache Superset 启用自定义错误页面(例如 404)的最佳方法是啥?【英文标题】:What is the best way to enable a custom error page (e. g., 404) with Apache Superset?使用 Apache Superset 启用自定义错误页面(例如 404)的最佳方法是什么? 【发布时间】:2021-09-19 04:37:32 【问题描述】:我们有一个 Superset 实例,这是一个非常棒的工具,在最近一次安全更改之后,用户通过堆栈跟踪获得了 500:
File "/opt/superset/venv/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/opt/superset/venv/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/opt/superset/venv/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/opt/superset/venv/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/opt/superset/venv/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/opt/superset/venv/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/opt/superset/venv/lib/python3.8/site-packages/fab_oidc/views.py", line 48, in login
return handle_login()
File "/opt/superset/venv/lib/python3.8/site-packages/flask_oidc/__init__.py", line 487, in decorated
return view_func(*args, **kwargs)
File "/opt/superset/venv/lib/python3.8/site-packages/fab_oidc/views.py", line 45, in handle_login
login_user(user, remember=False)
File "/opt/superset/venv/lib/python3.8/site-packages/flask_login/utils.py", line 158, in login_user
if not force and not user.is_active:
AttributeError: 'bool' object has no attribute 'is_active'
我知道为什么会发生这种情况,而且用户根本没有堆栈跟踪是一个问题。我的第一个想法是在 apache 反向代理中实现自定义错误文档,但这不起作用。为常见错误(403、404、500)实现自定义错误页面的最佳方法是什么,以便客户端无法使用 Superset 获得错误的堆栈跟踪?
谢谢!
【问题讨论】:
【参考方案1】:你可以使用
return self.response_500(message=str(error))
更改这似乎是您的错误原因的行
user.is_active:
到
current_user.active
【讨论】:
以上是关于使用 Apache Superset 启用自定义错误页面(例如 404)的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章