summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-03-12 13:19:58 +0100
committerMartin Polden <mpolden@mpolden.no>2019-03-12 13:19:58 +0100
commit6038ea0821dbf2e6d1c86b757d0caa9c1609a209 (patch)
tree3d8a29f224149f3329fa23567ff46790a7d39d4f /controller-server
parent20cd638efd54d991d347bbd4ff7eae52d44b624d (diff)
Log query params in audit log
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLogger.java12
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLoggerTest.java5
2 files changed, 14 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLogger.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLogger.java
index 7d8bbb17361..67b81ffa703 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLogger.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLogger.java
@@ -8,6 +8,7 @@ import com.yahoo.vespa.hosted.controller.persistence.CuratorDb;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.UncheckedIOException;
+import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.security.Principal;
import java.time.Clock;
@@ -67,7 +68,7 @@ public class AuditLogger {
}
Instant now = clock.instant();
- AuditLog.Entry entry = new AuditLog.Entry(now, principal.getName(), method.get(), request.getUri().getPath(),
+ AuditLog.Entry entry = new AuditLog.Entry(now, principal.getName(), method.get(), pathAndQueryOf(request.getUri()),
Optional.of(new String(data, StandardCharsets.UTF_8)));
try (Lock lock = db.lockAuditLog()) {
AuditLog auditLog = db.readAuditLog()
@@ -90,4 +91,13 @@ public class AuditLogger {
}
}
+ private static String pathAndQueryOf(URI url) {
+ String pathAndQuery = url.getPath();
+ String query = url.getQuery();
+ if (query != null) {
+ pathAndQuery += "?" + query;
+ }
+ return pathAndQuery;
+ }
+
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLoggerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLoggerTest.java
index 4354c1968e8..6470ce3663f 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLoggerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/auditlog/AuditLoggerTest.java
@@ -36,7 +36,7 @@ public class AuditLoggerTest {
}
{ // PATCH request is logged in audit log
- URI url = URI.create("http://localhost:8080/os/v1/");
+ URI url = URI.create("http://localhost:8080/os/v1/?foo=bar");
String data = "{\"cloud\":\"cloud9\",\"version\":\"42.0\"}";
HttpRequest request = testRequest(Method.PATCH, url, data);
tester.controller().auditLogger().log(request);
@@ -44,7 +44,7 @@ public class AuditLoggerTest {
assertEquals(instant(), log.get().entries().get(0).at());
assertEquals("user", log.get().entries().get(0).principal());
assertEquals(Entry.Method.PATCH, log.get().entries().get(0).method());
- assertEquals("/os/v1/", log.get().entries().get(0).resource());
+ assertEquals("/os/v1/?foo=bar", log.get().entries().get(0).resource());
assertEquals(data, log.get().entries().get(0).data().get());
}
@@ -55,6 +55,7 @@ public class AuditLoggerTest {
tester.controller().auditLogger().log(request);
assertEquals(2, log.get().entries().size());
assertEquals(instant(), log.get().entries().get(0).at());
+ assertEquals("/os/v1/", log.get().entries().get(0).resource());
}
{ // 14 days pass and another PATCH request is logged. Older entries are removed due to expiry