通过Airflow Web身份验证登录显示错误页面

时间:2019-04-29 18:27:42

标签: flask airflow

我按照http://airflow.apache.org/security.html#web-authentication上的说明启用了Airflow的Web身份验证(并重新启动了Web服务器)

登录似乎可以正常工作,但是我看到的是带有此错误消息的错误页面:

  File "/usr/local/lib/python2.7/dist-packages/airflow/contrib/auth/backends/password_auth.py", line 154, in login
    user = authenticate(session, username, password)
  File "/usr/local/lib/python2.7/dist-packages/airflow/contrib/auth/backends/password_auth.py", line 131, in authenticate
    if not user.authenticate(password):
  File "/usr/local/lib/python2.7/dist-packages/airflow/contrib/auth/backends/password_auth.py", line 72, in authenticate
    return check_password_hash(self._password, plaintext)
  File "/usr/local/lib/python2.7/dist-packages/flask_bcrypt.py", line 67, in check_password_hash
    return Bcrypt().check_password_hash(pw_hash, password)
  File "/usr/local/lib/python2.7/dist-packages/flask_bcrypt.py", line 193, in check_password_hash
    return safe_str_cmp(bcrypt.hashpw(password, pw_hash), pw_hash)
  File "/usr/local/lib/python2.7/dist-packages/bcrypt/__init__.py", line 81, in hashpw
    original_salt, salt = salt, _normalize_re.sub(b"$2b$", salt)
TypeError: expected string or buffer

对这个问题有任何想法/见解吗?

1 个答案:

答案 0 :(得分:0)

2所述,当我遇到相同的错误时,使用以下代码对我有效:

import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
from flask_bcrypt import generate_password_hash
user = PasswordUser(models.User())
user.username = 'some'
user.email = 'some@email.com'
user._password = generate_password_hash('password', 12).decode('utf-8')
session = settings.Session()
session.add(user)
session.commit()
session.close()