Пример #1
0
    def start_logging(self,
                      execution_id,
                      user_name,
                      user_id,
                      script_name,
                      command,
                      output_stream,
                      all_audit_names,
                      output_format,
                      start_time_millis=None):

        if start_time_millis is None:
            start_time_millis = get_current_millis()

        log_filename = self._log_name_creator.create_filename(
            execution_id, all_audit_names, script_name, start_time_millis)
        log_file_path = os.path.join(self._output_folder, log_filename)
        log_file_path = file_utils.create_unique_filename(log_file_path)

        output_logger = ScriptOutputLogger(log_file_path, output_stream)
        output_logger.write_line('id:' + execution_id)
        output_logger.write_line('user_name:' + user_name)
        output_logger.write_line('user_id:' + user_id)
        output_logger.write_line('script:' + script_name)
        output_logger.write_line('start_time:' + str(start_time_millis))
        output_logger.write_line('command:' + command)
        output_logger.write_line('output_format:' + output_format)
        output_logger.write_line(OUTPUT_STARTED_MARKER)
        output_logger.start()

        log_filename = os.path.basename(log_file_path)
        self._visited_files.add(log_filename)
        self._ids_to_file_map[execution_id] = log_filename
        self._output_loggers[execution_id] = output_logger
Пример #2
0
 def _write_client_token(self, client_id, request_handler):
     expiry_time = date_utils.get_current_millis() + days_to_ms(
         self.EXPIRES_DAYS)
     new_token = client_id + '&' + str(expiry_time)
     request_handler.set_secure_cookie(self.COOKIE_KEY,
                                       new_token,
                                       expires_days=self.EXPIRES_DAYS)
Пример #3
0
    def start_logging(self, execution_id,
                      user_name,
                      user_id,
                      script_name,
                      command,
                      output_stream,
                      all_audit_names,
                      start_time_millis=None):

        if start_time_millis is None:
            start_time_millis = get_current_millis()

        log_filename = self._log_name_creator.create_filename(
            execution_id, all_audit_names, script_name, start_time_millis)
        log_file_path = os.path.join(self._output_folder, log_filename)
        log_file_path = file_utils.create_unique_filename(log_file_path)

        output_logger = ScriptOutputLogger(log_file_path, output_stream)
        output_logger.write_line('id:' + execution_id)
        output_logger.write_line('user_name:' + user_name)
        output_logger.write_line('user_id:' + user_id)
        output_logger.write_line('script:' + script_name)
        output_logger.write_line('start_time:' + str(start_time_millis))
        output_logger.write_line('command:' + command)
        output_logger.write_line(OUTPUT_STARTED_MARKER)
        output_logger.start()

        log_filename = os.path.basename(log_file_path)
        self._visited_files.add(log_filename)
        self._ids_to_file_map[execution_id] = log_filename
        self._output_loggers[execution_id] = output_logger
Пример #4
0
    def start_logging(self,
                      execution_id,
                      username,
                      script_name,
                      command,
                      output_stream,
                      post_execution_info_provider,
                      start_time_millis=None):

        if start_time_millis is None:
            start_time_millis = get_current_millis()

        log_identifier = self._create_log_identifier(username, script_name,
                                                     start_time_millis)
        log_file_path = os.path.join(self._output_folder,
                                     log_identifier + '.log')
        log_file_path = file_utils.create_unique_filename(log_file_path)

        def write_post_execution_info():
            self._write_post_execution_info(execution_id, log_file_path,
                                            post_execution_info_provider)

        output_logger = ScriptOutputLogger(log_file_path, output_stream,
                                           write_post_execution_info)
        output_logger.write_line('id:' + execution_id)
        output_logger.write_line('user:'******'script:' + script_name)
        output_logger.write_line('start_time:' + str(start_time_millis))
        output_logger.write_line('command:' + command)
        output_logger.write_line(OUTPUT_STARTED_MARKER)
        output_logger.start()

        log_filename = os.path.basename(log_file_path)
        self._visited_files.add(log_filename)
        self._ids_to_file_map[execution_id] = log_filename
Пример #5
0
    def prepare_new_folder(self, audit_name, parent_path):
        millis = get_current_millis()
        user_folder_name = self._get_user_download_folder(audit_name)

        temp_path = os.path.join(parent_path, user_folder_name, str(millis))

        file_utils.prepare_folder(temp_path)

        return temp_path
Пример #6
0
    def prepare_new_folder(self, audit_name, parent_path):
        millis = get_current_millis()
        user_folder_name = self._get_user_download_folder(audit_name)

        temp_path = os.path.join(parent_path, user_folder_name, str(millis))

        file_utils.prepare_folder(temp_path)

        return temp_path
    def test_refresh_old_cookie_with_same_id(self):
        request_handler = mock_request_handler(ip='192.168.21.13')

        identification = IpBasedIdentification([])

        id = '1234567'
        token_expiry = str(date_utils.get_current_millis() + date_utils.days_to_ms(2))
        old_token = id + '&' + token_expiry
        request_handler.set_secure_cookie(COOKIE_KEY, old_token)

        new_id = identification.identify(request_handler)
        new_token = request_handler.get_cookie(COOKIE_KEY)

        self.assertEqual(new_id, id)
        self.assertNotEqual(old_token, new_token)
Пример #8
0
    def test_get_history_entries_when_one(self):
        start_time = get_current_millis()

        self.simulate_logging(execution_id='id1',
                              user='******',
                              script_name='My script',
                              log_lines=['some text'],
                              start_time_millis=start_time,
                              command='./script.sh -p p1 --flag')
        entries = self.logging_service.get_history_entries()
        self.assertEqual(1, len(entries))

        entry = entries[0]
        self.validate_history_entry(entry,
                                    id='id1',
                                    user='******',
                                    script_name='My script',
                                    start_time=start_time,
                                    command='./script.sh -p p1 --flag')
Пример #9
0
    def test_get_history_entries_when_one(self):
        start_time = get_current_millis()

        self.simulate_logging(execution_id='id1',
                              user_name='user1',
                              script_name='My script',
                              log_lines=['some text'],
                              start_time_millis=start_time,
                              command='./script.sh -p p1 --flag')
        entries = self.logging_service.get_history_entries()
        self.assertEqual(1, len(entries))

        entry = entries[0]
        self.validate_history_entry(entry,
                                    id='id1',
                                    user_name='user1',
                                    script_name='My script',
                                    start_time=start_time,
                                    command='./script.sh -p p1 --flag')
Пример #10
0
    def _read_client_token(self, request_handler):
        client_id_token = tornado_utils.get_secure_cookie(request_handler, self.COOKIE_KEY)
        if not client_id_token:
            return self.EMPTY_TOKEN

        parts = client_id_token.split('&')
        if len(parts) != 2:
            LOGGER.warning('Invalid token structure: ' + client_id_token)
            return self.EMPTY_TOKEN

        try:
            expiry_time = int(parts[1])
        except:
            LOGGER.exception('Invalid expiry time in: ' + client_id_token)
            return self.EMPTY_TOKEN

        days_remaining = date_utils.ms_to_days(expiry_time - date_utils.get_current_millis())
        if days_remaining < 0:
            LOGGER.warning('Token seems to be expired: ' + str(expiry_time))
            return self.EMPTY_TOKEN

        return parts[0], days_remaining
Пример #11
0
    def _read_client_token(self, request_handler):
        client_id_token = tornado_utils.get_secure_cookie(
            request_handler, self.COOKIE_KEY)
        if not client_id_token:
            return self.EMPTY_TOKEN

        parts = client_id_token.split('&')
        if len(parts) != 2:
            LOGGER.warning('Invalid token structure: ' + client_id_token)
            return self.EMPTY_TOKEN

        try:
            expiry_time = int(parts[1])
        except:
            LOGGER.exception('Invalid expiry time in: ' + client_id_token)
            return self.EMPTY_TOKEN

        days_remaining = date_utils.ms_to_days(expiry_time -
                                               date_utils.get_current_millis())
        if days_remaining < 0:
            LOGGER.warning('Token seems to be expired: ' + str(expiry_time))
            return self.EMPTY_TOKEN

        return parts[0], days_remaining
Пример #12
0
 def _write_client_token(self, client_id, request_handler):
     expiry_time = date_utils.get_current_millis() + days_to_ms(self.EXPIRES_DAYS)
     new_token = client_id + '&' + str(expiry_time)
     request_handler.set_secure_cookie(self.COOKIE_KEY, new_token, expires_days=self.EXPIRES_DAYS)