基本上,我想制作一个应用程序(Superset)配置为使用flask-login
进行身份验证工作,而不需要任何身份验证。匿名用户已经被分配/执行为AnonymousUserMixin
,但应用程序的某些部分需要用户名和大概ID。
我的想法是在数据库中创建一个Admin用户,并以某种方式将AnonymousUserMixin
指定为始终等于该用户。我将如何做到这一点以及在烧瓶登录或超集代码中的哪个位置我会这样做?
注意:进入此应用程序的身份验证已经得到处理,因此安全隐患没有实际意义。
先感谢您!
Superset使用Flask-AppBuilder作为底层Web框架。 Its configuration包括:
AUTH_TYPE = 0 | 1 | 2 | 3 | 4这是身份验证类型
- 0 =开放ID
- 1 =数据库样式(用户/密码)
- 2 = LDAP,也使用AUTH_LDAP_SERVER
- 3 =使用Web服务器环境变量REMOTE_USER
- 4 =使用一个或多个OAUTH提供商
我们的兴趣是3
。因为Superset supports middleware设置预定义用户就像(在superset_config.py
中)一样简单:
AUTH_TYPE = 3
class PredefinedUserMiddleware:
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
environ['REMOTE_USER'] = 'admin'
return self.app(environ, start_response)
ADDITIONAL_MIDDLEWARE = [PredefinedUserMiddleware]