示例#1
0
def _resolve_default(default, username, audit_name, working_dir):
    if not default:
        return default

    script = False
    if isinstance(default, dict) and 'script' in default:
        string_value = default['script']
        script = True
    elif isinstance(default, str):
        string_value = default
    else:
        return default

    resolved_string_value = resolve_env_vars(string_value, full_match=True)
    if resolved_string_value == string_value:
        resolved_string_value = replace_auth_vars(string_value, username,
                                                  audit_name)

    if script:
        has_variables = string_value != resolved_string_value
        shell = read_bool_from_config('shell',
                                      default,
                                      default=not has_variables)
        output = process_utils.invoke(resolved_string_value,
                                      working_dir,
                                      shell=shell)
        return output.strip()

    return resolved_string_value
示例#2
0
def _resolve_excluded_files(config, key, file_dir):
    raw_patterns = model_helper.read_list(config, key)
    if raw_patterns is None:
        patterns = []
    else:
        patterns = [resolve_env_vars(e) for e in strip(raw_patterns)]
    return FileMatcher(patterns, file_dir)
示例#3
0
def _resolve_default(default, username, audit_name):
    if not default:
        return default

    if not isinstance(default, str):
        return default

    resolved_env_default = resolve_env_vars(default, full_match=True)
    if resolved_env_default != default:
        return resolved_env_default

    return replace_auth_vars(default, username, audit_name)
    def __init__(self, params_dict):
        super().__init__()

        self.client_id = model_helper.read_obligatory(params_dict, 'client_id', ' for Google OAuth')

        secret_value = model_helper.read_obligatory(params_dict, 'secret', ' for Google OAuth')
        self.secret = model_helper.resolve_env_vars(secret_value, full_match=True)

        self.states = {}

        self._client_visible_config['client_id'] = self.client_id
        self._client_visible_config['oauth_url'] = tornado.auth.GoogleOAuth2Mixin._OAUTH_AUTHORIZE_URL
        self._client_visible_config['oauth_scope'] = 'email'
示例#5
0
def _resolve_default(default, username, audit_name, working_dir):
    if not default:
        return default

    script = False
    if isinstance(default, dict) and 'script' in default:
        string_value = default['script']
        script = True
    elif isinstance(default, str):
        string_value = default
    else:
        return default

    resolved_string_value = resolve_env_vars(string_value, full_match=True)
    if resolved_string_value == string_value:
        resolved_string_value = replace_auth_vars(string_value, username, audit_name)

    if not script:
        return resolved_string_value

    output = process_utils.invoke(resolved_string_value, working_dir)
    return output.strip()
def _resolve_default(default, username, audit_name, working_dir):
    if not default:
        return default

    script = False
    if isinstance(default, dict) and 'script' in default:
        string_value = default['script']
        script = True
    elif isinstance(default, str):
        string_value = default
    else:
        return default

    resolved_string_value = resolve_env_vars(string_value, full_match=True)
    if resolved_string_value == string_value:
        resolved_string_value = replace_auth_vars(string_value, username, audit_name)

    if not script:
        return resolved_string_value

    output = process_utils.invoke(resolved_string_value, working_dir)
    return output.strip()
示例#7
0
    def __init__(self, oauth_authorize_url, oauth_token_url, oauth_scope,
                 params_dict):
        super().__init__()

        self.oauth_token_url = oauth_token_url
        self.oauth_scope = oauth_scope

        self.client_id = model_helper.read_obligatory(params_dict, 'client_id',
                                                      ' for OAuth')
        secret_value = model_helper.read_obligatory(params_dict, 'secret',
                                                    ' for OAuth')
        self.secret = model_helper.resolve_env_vars(secret_value,
                                                    full_match=True)

        self._client_visible_config['client_id'] = self.client_id
        self._client_visible_config['oauth_url'] = oauth_authorize_url
        self._client_visible_config['oauth_scope'] = oauth_scope

        self.group_support = read_bool_from_config('group_support',
                                                   params_dict,
                                                   default=True)
        self.auth_info_ttl = params_dict.get('auth_info_ttl')
        self.session_expire = read_int_from_config(
            'session_expire_minutes', params_dict, default=0) * 60
        self.dump_file = params_dict.get('state_dump_file')

        if self.dump_file:
            self._validate_dump_file(self.dump_file)

        self._users = {}  # type: Dict[str, _UserState]
        self._user_locks = defaultdict(lambda: threading.Lock())

        self.timer = None
        if self.dump_file:
            self._restore_state()

            self._schedule_dump_task()
示例#8
0
 def test_resolve_when_empty(self):
     resolved_val = resolve_env_vars('')
     self.assertEqual('', resolved_val)
示例#9
0
 def test_replace_any_when_multiple(self):
     set_env_value('key1', 'Hello')
     set_env_value('key2', 'world')
     set_env_value('key3', '!')
     resolved_val = resolve_env_vars('$$key1 $$key2!$$key3')
     self.assertEqual('Hello world!!', resolved_val)
示例#10
0
 def test_replace_any_when_no_env(self):
     resolved_val = resolve_env_vars('Hello $$key1!')
     self.assertEqual('Hello $$key1!', resolved_val)
示例#11
0
 def test_replace_any_when_single_in_middle(self):
     set_env_value('my_key', 'my_password')
     resolved_val = resolve_env_vars('start/$$my_key/end')
     self.assertEqual('start/my_password/end', resolved_val)
示例#12
0
 def test_replace_any_when_repeating(self):
     set_env_value('my_key', 'abc')
     resolved_val = resolve_env_vars('$$my_key,$$my_key.$$my_key')
     self.assertEqual('abc,abc.abc', resolved_val)
示例#13
0
def _resolve_file_dir(config, key):
    raw_value = config.get(key)
    if not raw_value:
        return raw_value

    return resolve_env_vars(raw_value)
示例#14
0
 def test_replace_any_when_single_in_middle(self):
     set_env_value('my_key', 'my_password')
     resolved_val = resolve_env_vars('start/$$my_key/end')
     self.assertEqual('start/my_password/end', resolved_val)
    def read_password(params_dict):
        password = params_dict.get('password')
        password = model_helper.resolve_env_vars(password, full_match=True)

        return password
示例#16
0
 def test_no_replace_full_match(self):
     value = 'abc!@#$%^&*,?$xyz'
     resolved_val = resolve_env_vars(value, full_match=True)
     self.assertEqual(value, resolved_val)
示例#17
0
 def test_resolve_when_empty(self):
     resolved_val = resolve_env_vars('')
     self.assertEqual('', resolved_val)
示例#18
0
 def test_no_replace_in_middle_full_match(self):
     value = 'abc$$HOME.123'
     resolved_val = resolve_env_vars(value, full_match=True)
     self.assertEqual(value, resolved_val)
示例#19
0
 def test_replace_any_when_no_env(self):
     resolved_val = resolve_env_vars('Hello $$key1!')
     self.assertEqual('Hello $$key1!', resolved_val)
示例#20
0
 def test_replace_any_when_multiple(self):
     set_env_value('key1', 'Hello')
     set_env_value('key2', 'world')
     set_env_value('key3', '!')
     resolved_val = resolve_env_vars('$$key1 $$key2!$$key3')
     self.assertEqual('Hello world!!', resolved_val)
示例#21
0
 def test_replace_any_when_repeating(self):
     set_env_value('my_key', 'abc')
     resolved_val = resolve_env_vars('$$my_key,$$my_key.$$my_key')
     self.assertEqual('abc,abc.abc', resolved_val)
示例#22
0
 def test_resolve_when_int(self):
     resolved_val = resolve_env_vars(123)
     self.assertEqual(123, resolved_val)
示例#23
0
 def test_no_replace_in_middle_full_match(self):
     value = 'abc$$HOME.123'
     resolved_val = resolve_env_vars(value, full_match=True)
     self.assertEqual(value, resolved_val)
示例#24
0
 def test_replace_full_match(self):
     set_env_value('my_key', 'my_password')
     resolved_val = resolve_env_vars('$$my_key', full_match=True)
     self.assertEqual('my_password', resolved_val)
示例#25
0
 def test_replace_any_when_exact(self):
     set_env_value('my_key', 'my_password')
     resolved_val = resolve_env_vars('$$my_key')
     self.assertEqual('my_password', resolved_val)
示例#26
0
 def test_resolve_when_int(self):
     resolved_val = resolve_env_vars(123)
     self.assertEqual(123, resolved_val)
示例#27
0
 def test_replace_any_when_exact(self):
     set_env_value('my_key', 'my_password')
     resolved_val = resolve_env_vars('$$my_key')
     self.assertEqual('my_password', resolved_val)
示例#28
0
def _resolve_file_dir(config, key):
    raw_value = config.get(key)
    if not raw_value:
        return raw_value

    return resolve_env_vars(raw_value)
示例#29
0
 def test_replace_full_match(self):
     set_env_value('my_key', 'my_password')
     resolved_val = resolve_env_vars('$$my_key', full_match=True)
     self.assertEqual('my_password', resolved_val)
示例#30
0
 def test_no_replace_full_match(self):
     value = 'abc!@#$%^&*,?$xyz'
     resolved_val = resolve_env_vars(value, full_match=True)
     self.assertEqual(value, resolved_val)
示例#31
0
    def read_password(params_dict):
        password = params_dict.get('password')
        password = model_helper.resolve_env_vars(password, full_match=True)

        return password