def test_audit_logging_middleware_enable(): c = make_logged_in_client(username="******", is_superuser=False) # Make sure we enable it with a file path log_tmp = tempfile.NamedTemporaryFile("w+t") # Get a tempfile path log_path = log_tmp.name log_tmp.close() reset = AUDIT_EVENT_LOG_DIR.set_for_testing(log_path) settings.MIDDLEWARE_CLASSES.append("desktop.middleware.AuditLoggingMiddleware") # Re-add middleware try: # Check if we audit correctly response = c.get("/beeswax/") assert_true("audited" in response, response) audit = open(log_path).readlines() for line in audit: audit_json = json.loads(line) audit_record = audit_json.values()[0] assert_equal("test_audit_logging_middleware_enable", audit_record["user"], audit_record) assert_equal("/beeswax/", audit_record["url"], audit_record) finally: settings.MIDDLEWARE_CLASSES.pop() reset() try: os.remove(log_tmp) except: pass
def test_audit_logging_middleware_enable(): c = make_logged_in_client(username='******', is_superuser=False) # Make sure we enable it with a file path log_tmp = tempfile.NamedTemporaryFile("w+t") # Get a tempfile path log_path = log_tmp.name log_tmp.close() reset = AUDIT_EVENT_LOG_DIR.set_for_testing(log_path) settings.MIDDLEWARE_CLASSES.append('desktop.middleware.AuditLoggingMiddleware') # Re-add middleware try: # Check if we audit correctly response = c.get("/beeswax/") assert_true('audited' in response, response) audit = open(log_path).readlines() for line in audit: audit_json = json.loads(line) audit_record = audit_json.values()[0] assert_equal('test_audit_logging_middleware_enable', audit_record['user'], audit_record) assert_equal('/beeswax/', audit_record['url'], audit_record) finally: settings.MIDDLEWARE_CLASSES.pop() reset() try: os.remove(log_tmp) except: pass
def __init__(self, get_response): self.get_response = get_response self.impersonator = SERVER_USER.get() if not AUDIT_EVENT_LOG_DIR.get(): LOG.info('Unloading AuditLoggingMiddleware') raise exceptions.MiddlewareNotUsed
def test_audit_logging_middleware_enable(): c = make_logged_in_client(username='******', is_superuser=False) # Make sure we enable it with a file path with tempfile.NamedTemporaryFile("w+t") as log_tmp: log_path = log_tmp.name reset = AUDIT_EVENT_LOG_DIR.set_for_testing(log_path) settings.MIDDLEWARE_CLASSES.append( 'desktop.middleware.AuditLoggingMiddleware') # Re-add middleware try: # Check if we audit correctly response = c.get("/useradmin/permissions/edit/beeswax/access") assert_true('audited' in response, response) audit = open(log_path).readlines() for line in audit: audit_json = json.loads(line) audit_record = list(audit_json.values())[0] assert_equal('test_audit_logging', audit_record['user'], audit_record) assert_equal('/useradmin/permissions/edit/beeswax/access', audit_record['url'], audit_record) finally: settings.MIDDLEWARE_CLASSES.pop() reset()
def __init__(self): from desktop.conf import AUDIT_EVENT_LOG_DIR, SERVER_USER self.impersonator = SERVER_USER.get() if not AUDIT_EVENT_LOG_DIR.get(): LOG.info('Unloading AuditLoggingMiddleware') raise exceptions.MiddlewareNotUsed
def test_audit_logging_middleware_disable(): c = make_logged_in_client(username="******", is_superuser=False) reset = AUDIT_EVENT_LOG_DIR.set_for_testing("") try: # No middleware yet response = c.get("/oozie/") assert_false("audited" in response, response) finally: reset()
def test_audit_logging_middleware_disable(): c = make_logged_in_client(username='******', is_superuser=False) reset = AUDIT_EVENT_LOG_DIR.set_for_testing('') try: # No middleware yet response = c.get("/oozie/") assert_false('audited' in response, response) finally: reset()
def get_audit_logger(): from desktop.conf import AUDIT_EVENT_LOG_DIR, AUDIT_LOG_MAX_FILE_SIZE audit_logger = logging.getLogger('audit') if not [hclass for hclass in audit_logger.handlers if isinstance(hclass, AuditHandler)]: # Don't add handler twice size, unit = int(AUDIT_LOG_MAX_FILE_SIZE.get()[:-2]), AUDIT_LOG_MAX_FILE_SIZE.get()[-2:] maxBytes = size * 1024 ** (1 if unit == 'KB' else 2 if unit == 'MB' else 3) audit_handler = AuditHandler(AUDIT_EVENT_LOG_DIR.get(), maxBytes=maxBytes, backupCount=50) audit_handler.setFormatter(MessageOnlyFormatter()) audit_logger.addHandler(audit_handler) return audit_logger
def get_audit_logger(): from desktop.conf import AUDIT_EVENT_LOG_DIR, AUDIT_LOG_MAX_FILE_SIZE audit_logger = logging.getLogger('audit') if not filter(lambda hclass: isinstance(hclass, AuditHandler), audit_logger.handlers): # Don't add handler twice size, unit = int(AUDIT_LOG_MAX_FILE_SIZE.get()[:-2]), AUDIT_LOG_MAX_FILE_SIZE.get()[-2:] maxBytes = size * 1024 ** (1 if unit == 'KB' else 2 if unit == 'MB' else 3) audit_handler = AuditHandler(AUDIT_EVENT_LOG_DIR.get(), maxBytes=maxBytes, backupCount=50) audit_handler.setFormatter(MessageOnlyFormatter()) audit_logger.addHandler(audit_handler) return audit_logger
def test_audit_logging_middleware_enable(): c = make_logged_in_client(username='******', is_superuser=False) # Make sure we enable it with a file path with tempfile.NamedTemporaryFile("w+t") as log_tmp: log_path = log_tmp.name reset = AUDIT_EVENT_LOG_DIR.set_for_testing(log_path) settings.MIDDLEWARE_CLASSES.append('desktop.middleware.AuditLoggingMiddleware') # Re-add middleware try: # Check if we audit correctly response = c.get("/useradmin/permissions/edit/beeswax/access") assert_true('audited' in response, response) audit = open(log_path).readlines() for line in audit: audit_json = json.loads(line) audit_record = audit_json.values()[0] assert_equal('test_audit_logging', audit_record['user'], audit_record) assert_equal('/useradmin/permissions/edit/beeswax/access', audit_record['url'], audit_record) finally: settings.MIDDLEWARE_CLASSES.pop() reset()
def test_one_audit(): log_tmp = tempfile.NamedTemporaryFile("w+t") # KB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25KB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 1, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r() # MB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25MB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 2, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r() # GB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25GB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 3, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r()
def test_one_audit(): with tempfile.NamedTemporaryFile("w+t") as log_tmp: # KB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25KB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 1, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r() # MB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25MB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 2, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r() # GB reset = [ AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name), AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25GB') ] audit_logger = get_audit_logger() audit_handler = audit_logger.handlers[0] assert_equal(25 * 1024 ** 3, audit_handler.maxBytes) assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers) audit_logger = get_audit_logger() assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice # Cleanup audit_logger.removeHandler(audit_handler) for r in reset: r()