[fix] Retrieve apps settings in a safer way (fix #61)

This commit is contained in:
Jérôme Lebleu 2015-05-11 14:40:00 +02:00
parent c046cbe07d
commit e1ded25ed1

View file

@ -898,34 +898,32 @@ def app_ssowatconf(auth):
except: except:
apps_list = [] apps_list = []
def _get_setting(settings, name):
s = settings.get(name, None)
return s.split(',') if s else []
for app in apps_list: for app in apps_list:
if _is_installed(app['id']): if _is_installed(app['id']):
with open(apps_setting_path + app['id'] +'/settings.yml') as f: with open(apps_setting_path + app['id'] +'/settings.yml') as f:
app_settings = yaml.load(f) app_settings = yaml.load(f)
if 'skipped_uris' in app_settings: for item in _get_setting(app_settings, 'skipped_uris'):
for item in app_settings['skipped_uris'].split(','): if item[-1:] == '/':
if item[-1:] == '/': item = item[:-1]
item = item[:-1] skipped_urls.append(app_settings['domain'] + app_settings['path'][:-1] + item)
skipped_urls.append(app_settings['domain'] + app_settings['path'][:-1] + item) for item in _get_setting(app_settings, 'skipped_regex'):
if 'skipped_regex' in app_settings: skipped_regex.append(item)
for item in app_settings['skipped_regex'].split(','): for item in _get_setting(app_settings, 'unprotected_uris'):
skipped_regex.append(item) if item[-1:] == '/':
if 'unprotected_uris' in app_settings: item = item[:-1]
for item in app_settings['unprotected_uris'].split(','): unprotected_urls.append(app_settings['domain'] + app_settings['path'][:-1] + item)
if item[-1:] == '/': for item in _get_setting(app_settings, 'unprotected_regex'):
item = item[:-1] unprotected_regex.append(item)
unprotected_urls.append(app_settings['domain'] + app_settings['path'][:-1] + item) for item in _get_setting(app_settings, 'protected_uris'):
if 'unprotected_regex' in app_settings: if item[-1:] == '/':
for item in app_settings['unprotected_regex'].split(','): item = item[:-1]
unprotected_regex.append(item) protected_urls.append(app_settings['domain'] + app_settings['path'][:-1] + item)
if 'protected_uris' in app_settings: for item in _get_setting(app_settings, 'protected_regex'):
for item in app_settings['protected_uris'].split(','): protected_regex.append(item)
if item[-1:] == '/':
item = item[:-1]
protected_urls.append(app_settings['domain'] + app_settings['path'][:-1] + item)
if 'protected_regex' in app_settings:
for item in app_settings['protected_regex'].split(','):
protected_regex.append(item)
if 'redirected_urls' in app_settings: if 'redirected_urls' in app_settings:
redirected_urls.update(app_settings['redirected_urls']) redirected_urls.update(app_settings['redirected_urls'])
if 'redirected_regex' in app_settings: if 'redirected_regex' in app_settings: