【发布时间】:2020-05-25 16:53:13
【问题描述】:
我已经在 docker-compose 文件中启用了 RBAC 作为环境变量。
- AIRFLOW__WEBSERVER__RBAC=True
我想在我的 dag 文件中捕获启动 dag 的用户。
我尝试使用from flask_login import current_user。但是,我将 current_user 的值设为 None。
我可以知道如何使用 RBAC 捕获用户详细信息吗?
【问题讨论】:
我已经在 docker-compose 文件中启用了 RBAC 作为环境变量。
- AIRFLOW__WEBSERVER__RBAC=True
我想在我的 dag 文件中捕获启动 dag 的用户。
我尝试使用from flask_login import current_user。但是,我将 current_user 的值设为 None。
我可以知道如何使用 RBAC 捕获用户详细信息吗?
【问题讨论】:
根据Airflow 文档作为RBAC 安全模型的一部分,由Flask AppBuilder (FAB)处理:
Airflow 使用
flask_login并在airflow.default_login模块。您可以更改内容并制作PYTHONPATH的一部分并将其配置为后端airflow.cfg.
Flask-login 模块提供用户管理操作,因此您可以在专用属性flask_login.current_user 中获取当前用户,添加 一些额外的字段,如#3438 拉取请求中所述:
if current_user and hasattr(current_user, 'user'):
user = current_user.user.username
elif current_user and hasattr(current_user, 'username'):
我想您可以使用current_user.user.username 获取用户登录信息。
【讨论】:
AttributeError: 'NoneType' object has no attribute 'user'