Example #1
0
    def test_dag_link(self):
        from airflow.www_rbac.app import cached_appbuilder
        with cached_appbuilder(testing=True).app.test_request_context():
            html = str(utils.dag_link({
                'dag_id': '<a&1>',
                'execution_date': datetime.now()
            }))

        self.assertIn('%3Ca%261%3E', html)
        self.assertNotIn('<a&1>', html)
Example #2
0
from airflow.www_rbac.app import cached_appbuilder
from typing import List, Any

logger = logging.getLogger(__name__)
f_handler = logging.FileHandler('/var/log/airflow_ldap_sync.log')
f_format = logging.Formatter('%(asctime)s - %(message)s')
f_handler.setFormatter(f_format)
logger.addHandler(f_handler)
logger.info('Starting airflow ldap sync')

ldap_sync_conf_file = os.path.join(os.environ['AIRFLOW_HOME'],
                                   'ldap_sync.yaml')
with open(ldap_sync_conf_file) as f:
    ldap_sync_config = safe_load(f)

appbuilder = cached_appbuilder()
con = ldap.initialize(appbuilder.sm.auth_ldap_server)
con.set_option(ldap.OPT_REFERRALS, 0)
appbuilder.sm._bind_indirect_user(ldap, con)

for group in ldap_sync_config['group_role_map']:
    try:
        filter_str = \
                    "(&(ObjectClass=%s)(%s=%s))" % (
                        ldap_sync_config['group_object_class'],
                        ldap_sync_config['group_name_attr'],
                        group
                    )
        group_cn = con.search_s(appbuilder.sm.auth_ldap_search,
                                ldap.SCOPE_SUBTREE, filter_str,
                                [ldap_sync_config['group_name_attr']])[0][0]