diff --git a/airflow/www/extensions/init_appbuilder.py b/airflow/www/extensions/init_appbuilder.py index 2a1ee904f8cd2..fd66314550653 100644 --- a/airflow/www/extensions/init_appbuilder.py +++ b/airflow/www/extensions/init_appbuilder.py @@ -215,6 +215,7 @@ def init_app(self, app, session): else: self.post_init() self._init_extension(app) + self._swap_url_filter() def _init_extension(self, app): app.appbuilder = self @@ -222,6 +223,17 @@ def _init_extension(self, app): app.extensions = {} app.extensions["appbuilder"] = self + def _swap_url_filter(self): + """ + Use our url filtering util function so there is consistency between + FAB and Airflow routes + """ + from flask_appbuilder.security import views as fab_sec_views + + from airflow.www.views import get_safe_url + + fab_sec_views.get_safe_redirect = get_safe_url + def post_init(self): for baseview in self.baseviews: # instantiate the views and add session