diff --git a/warden_server/test_warden_server.py b/warden_server/test_warden_server.py
index 2efe5b51c40b04df9cdec812b6bdd2fe6a0acfbe..e1d0ff3968d44d843b6d5c0c270def42cfc97080 100755
--- a/warden_server/test_warden_server.py
+++ b/warden_server/test_warden_server.py
@@ -142,6 +142,19 @@ class Warden3ServerTest(unittest.TestCase):
status, _, _ = Request(self.app, query)()
self.assertEqual(status, expected_status)
+ def test_getClients_interface(self):
+ """Tests the getClients method invocation"""
+ tests_common = [
+ ("/getClients?secret=abc", "200 OK"),
+ ("/getClients?secret=abc&evil=false", "200 OK"),
+ ("/getClients?client=dwadaw", "403 I'm watching. Authenticate."),
+ ("/getClients?client=asdf.blefub&secret=abc", "403 I'm watching. Authenticate."),
+ ]
+ for query, expected_status in tests_common:
+ with self.subTest(query=query, expected_status=expected_status):
+ status, _, _ = Request(self.app, query)()
+ self.assertEqual(status, expected_status)
+
def test_getEvents_interface(self): # pylint: disable = locally-disabled, invalid-name
"""Tests the getEvents method invocation"""
tests_common = [
diff --git a/warden_server/warden_server.py b/warden_server/warden_server.py
index bbf4ff9efd6c020f6ef5e76d857dacc2503ebb20..d66294d63554b4488fe5743b9b570d13143bb61d 100755
--- a/warden_server/warden_server.py
+++ b/warden_server/warden_server.py
@@ -1630,6 +1630,11 @@ class WardenHandler(ObjectBase):
info["description"] = self.description
return info
+ @expose(read=True)
+ @json_wrapper
+ def getClients(self):
+ return {"clients": self.db.get_clients()}
+
@expose(read=True)
@json_wrapper
def getEvents(