Under which category would you file this issue?
Providers
Apache Airflow version
3.2.2
What happened and how to reproduce it?
Users are unable to log in to the Apache Airflow web interface when LDAP authentication is configured as the backend. The login page loads normally, but submitting valid credentials results in an internal server error. No successful LDAP authentication occurs.
Error:
Jun 12 13:09:52 fondor airflow[5382]: [2026-06-12T17:09:52.820727Z] {app.py:875} ERROR - Exception on /login/ [POST] Jun 12 13:09:52 fondor airflow[5382]: Traceback (most recent call last): Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app Jun 12 13:09:52 fondor airflow[5382]: response = self.full_dispatch_request() Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request Jun 12 13:09:52 fondor airflow[5382]: rv = self.handle_user_exception(e) Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request Jun 12 13:09:52 fondor airflow[5382]: rv = self.dispatch_request() Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request Jun 12 13:09:52 fondor airflow[5382]: return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] Jun 12 13:09:52 fondor airflow[5382]: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask_appbuilder/security/decorators.py", line 36, in wrapped_view Jun 12 13:09:52 fondor airflow[5382]: response = make_response(view(*args, **kwargs)) Jun 12 13:09:52 fondor airflow[5382]: ~~~~^^^^^^^^^^^^^^^^^ Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask_appbuilder/security/views.py", line 649, in login Jun 12 13:09:52 fondor airflow[5382]: user = self.appbuilder.sm.auth_user_ldap( Jun 12 13:09:52 fondor airflow[5382]: form.username.data, form.password.data Jun 12 13:09:52 fondor airflow[5382]: ) Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/airflow/providers/fab/auth_manager/security_manager/override.py", line 1981, in auth_user_ldap Jun 12 13:09:52 fondor airflow[5382]: user_dn, user_attributes = self._search_ldap(ldap, con, username) Jun 12 13:09:52 fondor airflow[5382]: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/airflow/providers/fab/auth_manager/security_manager/override.py", line 2473, in _search_ldap Jun 12 13:09:52 fondor airflow[5382]: escaped_username = ldap.filter.escape_filter_chars(username) Jun 12 13:09:52 fondor airflow[5382]: ^^^^^^^^^^^ Jun 12 13:09:52 fondor airflow[5382]: AttributeError: module 'ldap' has no attribute 'filter'
What you think should happen instead?
Users with valid LDAP credentials should be authenticated and redirected to the Airflow dashboard.
Operating System
debian 13.5
Deployment
Virtualenv installation
Apache Airflow Provider(s)
fab
Versions of Apache Airflow Providers
apache-airflow-providers-amazon==9.30.0
apache-airflow-providers-common-compat==1.15.0
apache-airflow-providers-common-io==1.7.3
apache-airflow-providers-common-sql==2.0.1
apache-airflow-providers-elasticsearch==6.6.0
apache-airflow-providers-fab==3.6.5
apache-airflow-providers-git==0.4.0
apache-airflow-providers-http==6.0.3
apache-airflow-providers-postgres==6.7.1
apache-airflow-providers-samba==4.12.6
apache-airflow-providers-smtp==3.0.1
apache-airflow-providers-ssh==5.0.2
apache-airflow-providers-standard==1.14.0
Official Helm Chart version
Not Applicable
Kubernetes Version
No response
Helm Chart configuration
No response
Docker Image customizations
No response
Anything else?
A one-line patch has been applied directly to override.py using sed to inject the missing import statement. This restores LDAP login functionality immediately without requiring a provider downgrade.
Command applied on the fondor server:
sed -i 's/^import ldap$/import ldap\nimport ldap.filter/'
$(python -c "import importlib; import os; m = importlib.import_module(
'airflow.providers.fab.auth_manager.security_manager.override');
print(os.path.abspath(m.file))")
Are you willing to submit PR?
Code of Conduct
Under which category would you file this issue?
Providers
Apache Airflow version
3.2.2
What happened and how to reproduce it?
Users are unable to log in to the Apache Airflow web interface when LDAP authentication is configured as the backend. The login page loads normally, but submitting valid credentials results in an internal server error. No successful LDAP authentication occurs.
Error:
Jun 12 13:09:52 fondor airflow[5382]: [2026-06-12T17:09:52.820727Z] {app.py:875} ERROR - Exception on /login/ [POST] Jun 12 13:09:52 fondor airflow[5382]: Traceback (most recent call last): Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app Jun 12 13:09:52 fondor airflow[5382]: response = self.full_dispatch_request() Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request Jun 12 13:09:52 fondor airflow[5382]: rv = self.handle_user_exception(e) Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request Jun 12 13:09:52 fondor airflow[5382]: rv = self.dispatch_request() Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request Jun 12 13:09:52 fondor airflow[5382]: return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] Jun 12 13:09:52 fondor airflow[5382]: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask_appbuilder/security/decorators.py", line 36, in wrapped_view Jun 12 13:09:52 fondor airflow[5382]: response = make_response(view(*args, **kwargs)) Jun 12 13:09:52 fondor airflow[5382]: ~~~~^^^^^^^^^^^^^^^^^ Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/flask_appbuilder/security/views.py", line 649, in login Jun 12 13:09:52 fondor airflow[5382]: user = self.appbuilder.sm.auth_user_ldap( Jun 12 13:09:52 fondor airflow[5382]: form.username.data, form.password.data Jun 12 13:09:52 fondor airflow[5382]: ) Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/airflow/providers/fab/auth_manager/security_manager/override.py", line 1981, in auth_user_ldap Jun 12 13:09:52 fondor airflow[5382]: user_dn, user_attributes = self._search_ldap(ldap, con, username) Jun 12 13:09:52 fondor airflow[5382]: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ Jun 12 13:09:52 fondor airflow[5382]: File "/opt/airflow/venv/lib/python3.13/site-packages/airflow/providers/fab/auth_manager/security_manager/override.py", line 2473, in _search_ldap Jun 12 13:09:52 fondor airflow[5382]: escaped_username = ldap.filter.escape_filter_chars(username) Jun 12 13:09:52 fondor airflow[5382]: ^^^^^^^^^^^ Jun 12 13:09:52 fondor airflow[5382]: AttributeError: module 'ldap' has no attribute 'filter'What you think should happen instead?
Users with valid LDAP credentials should be authenticated and redirected to the Airflow dashboard.
Operating System
debian 13.5
Deployment
Virtualenv installation
Apache Airflow Provider(s)
fab
Versions of Apache Airflow Providers
apache-airflow-providers-amazon==9.30.0
apache-airflow-providers-common-compat==1.15.0
apache-airflow-providers-common-io==1.7.3
apache-airflow-providers-common-sql==2.0.1
apache-airflow-providers-elasticsearch==6.6.0
apache-airflow-providers-fab==3.6.5
apache-airflow-providers-git==0.4.0
apache-airflow-providers-http==6.0.3
apache-airflow-providers-postgres==6.7.1
apache-airflow-providers-samba==4.12.6
apache-airflow-providers-smtp==3.0.1
apache-airflow-providers-ssh==5.0.2
apache-airflow-providers-standard==1.14.0
Official Helm Chart version
Not Applicable
Kubernetes Version
No response
Helm Chart configuration
No response
Docker Image customizations
No response
Anything else?
A one-line patch has been applied directly to override.py using sed to inject the missing import statement. This restores LDAP login functionality immediately without requiring a provider downgrade.
Command applied on the fondor server:
sed -i 's/^import ldap$/import ldap\nimport ldap.filter/'
$(python -c "import importlib; import os; m = importlib.import_module(
'airflow.providers.fab.auth_manager.security_manager.override');
print(os.path.abspath(m.file))")
Are you willing to submit PR?
Code of Conduct