aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2023-07-01 13:32:03 -0700
committerAnton Tananaev <anton@traccar.org>2023-07-01 13:32:03 -0700
commit7c5df536074e850f8f9e35775ca94fd04c3cdd3a (patch)
tree1c1f65f336d1ad55afddf164f34770e4a5cb01ee
parent37564d458bb9d4bca9f1634bbe07e1102e0221cd (diff)
downloadtrackermap-server-7c5df536074e850f8f9e35775ca94fd04c3cdd3a.tar.gz
trackermap-server-7c5df536074e850f8f9e35775ca94fd04c3cdd3a.tar.bz2
trackermap-server-7c5df536074e850f8f9e35775ca94fd04c3cdd3a.zip
Configurable API timeout
-rw-r--r--src/main/java/org/traccar/config/Keys.java8
-rw-r--r--src/main/java/org/traccar/web/ThrottlingFilter.java3
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/org/traccar/config/Keys.java b/src/main/java/org/traccar/config/Keys.java
index 04bf10fe7..e171511e6 100644
--- a/src/main/java/org/traccar/config/Keys.java
+++ b/src/main/java/org/traccar/config/Keys.java
@@ -739,6 +739,14 @@ public final class Keys {
List.of(KeyType.CONFIG));
/**
+ * Maximum API request duration in seconds.
+ */
+ public static final ConfigKey<Integer> WEB_MAX_REQUEST_SECONDS = new IntegerConfigKey(
+ "web.maxRequestSec",
+ List.of(KeyType.CONFIG),
+ 600);
+
+ /**
* Sanitize all strings returned via API. This is needed to fix XSS issues in the old web interface. New React-based
* interface doesn't require this.
*/
diff --git a/src/main/java/org/traccar/web/ThrottlingFilter.java b/src/main/java/org/traccar/web/ThrottlingFilter.java
index 054af652f..6d2328562 100644
--- a/src/main/java/org/traccar/web/ThrottlingFilter.java
+++ b/src/main/java/org/traccar/web/ThrottlingFilter.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2022 Anton Tananaev (anton@traccar.org)
+ * Copyright 2022 - 2023 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,6 +39,7 @@ public class ThrottlingFilter extends DoSFilter {
if (config.hasKey(Keys.WEB_MAX_REQUESTS_PER_SECOND)) {
setMaxRequestsPerSec(config.getInteger(Keys.WEB_MAX_REQUESTS_PER_SECOND));
}
+ setMaxRequestMs(config.getInteger(Keys.WEB_MAX_REQUEST_SECONDS) * 1000L);
}
@Override