Migrate challenge-issuing configuration into the abusive message filter module
This commit is contained in:
parent
616db337e1
commit
5baa51d547
|
@ -1 +1 @@
|
||||||
Subproject commit 9788de21103ada586e3daeffc24a618e911aabb5
|
Subproject commit 607b9ea14dc9c5ea448c0dc2f79419fd9c48d73f
|
|
@ -7,15 +7,6 @@ import java.time.Duration;
|
||||||
|
|
||||||
public class DynamicRateLimitsConfiguration {
|
public class DynamicRateLimitsConfiguration {
|
||||||
|
|
||||||
@JsonProperty
|
|
||||||
private CardinalityRateLimitConfiguration unsealedSenderNumber = new CardinalityRateLimitConfiguration(100, Duration.ofDays(1));
|
|
||||||
|
|
||||||
@JsonProperty
|
|
||||||
private int unsealedSenderDefaultCardinalityLimit = 100;
|
|
||||||
|
|
||||||
@JsonProperty
|
|
||||||
private int unsealedSenderPermitIncrement = 50;
|
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private RateLimitConfiguration rateLimitReset = new RateLimitConfiguration(2, 2.0 / (60 * 24));
|
private RateLimitConfiguration rateLimitReset = new RateLimitConfiguration(2, 2.0 / (60 * 24));
|
||||||
|
|
||||||
|
@ -31,10 +22,6 @@ public class DynamicRateLimitsConfiguration {
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private RateLimitConfiguration pushChallengeSuccess = new RateLimitConfiguration(2, 2.0 / (60 * 24));
|
private RateLimitConfiguration pushChallengeSuccess = new RateLimitConfiguration(2, 2.0 / (60 * 24));
|
||||||
|
|
||||||
public CardinalityRateLimitConfiguration getUnsealedSenderNumber() {
|
|
||||||
return unsealedSenderNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RateLimitConfiguration getRateLimitReset() {
|
public RateLimitConfiguration getRateLimitReset() {
|
||||||
return rateLimitReset;
|
return rateLimitReset;
|
||||||
}
|
}
|
||||||
|
@ -54,12 +41,4 @@ public class DynamicRateLimitsConfiguration {
|
||||||
public RateLimitConfiguration getPushChallengeSuccess() {
|
public RateLimitConfiguration getPushChallengeSuccess() {
|
||||||
return pushChallengeSuccess;
|
return pushChallengeSuccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getUnsealedSenderDefaultCardinalityLimit() {
|
|
||||||
return unsealedSenderDefaultCardinalityLimit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getUnsealedSenderPermitIncrement() {
|
|
||||||
return unsealedSenderPermitIncrement;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.vdurmont.semver4j.Semver;
|
import com.vdurmont.semver4j.Semver;
|
||||||
import java.time.Duration;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -21,7 +20,7 @@ import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.whispersystems.textsecuregcm.configuration.RateLimitsConfiguration.CardinalityRateLimitConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.RateLimitsConfiguration.RateLimitConfiguration;
|
||||||
import org.whispersystems.textsecuregcm.storage.DynamicConfigurationManager;
|
import org.whispersystems.textsecuregcm.storage.DynamicConfigurationManager;
|
||||||
import org.whispersystems.textsecuregcm.util.ua.ClientPlatform;
|
import org.whispersystems.textsecuregcm.util.ua.ClientPlatform;
|
||||||
|
|
||||||
|
@ -326,24 +325,24 @@ class DynamicConfigurationTest {
|
||||||
final DynamicConfiguration emptyConfig =
|
final DynamicConfiguration emptyConfig =
|
||||||
DynamicConfigurationManager.parseConfiguration(emptyConfigYaml, DynamicConfiguration.class).orElseThrow();
|
DynamicConfigurationManager.parseConfiguration(emptyConfigYaml, DynamicConfiguration.class).orElseThrow();
|
||||||
|
|
||||||
assertThat(emptyConfig.getLimits().getUnsealedSenderNumber().getMaxCardinality()).isEqualTo(100);
|
assertThat(emptyConfig.getLimits().getRateLimitReset().getBucketSize()).isEqualTo(2);
|
||||||
assertThat(emptyConfig.getLimits().getUnsealedSenderNumber().getTtl()).isEqualTo(Duration.ofDays(1));
|
assertThat(emptyConfig.getLimits().getRateLimitReset().getLeakRatePerMinute()).isEqualTo(2.0 / (60 * 24));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
final String limitsConfig = """
|
final String limitsConfig = """
|
||||||
limits:
|
limits:
|
||||||
unsealedSenderNumber:
|
rateLimitReset:
|
||||||
maxCardinality: 99
|
bucketSize: 17
|
||||||
ttl: PT23H
|
leakRatePerMinute: 44
|
||||||
""";
|
""";
|
||||||
|
|
||||||
final CardinalityRateLimitConfiguration unsealedSenderNumber =
|
final RateLimitConfiguration resetRateLimitConfiguration =
|
||||||
DynamicConfigurationManager.parseConfiguration(limitsConfig, DynamicConfiguration.class).orElseThrow()
|
DynamicConfigurationManager.parseConfiguration(limitsConfig, DynamicConfiguration.class).orElseThrow()
|
||||||
.getLimits().getUnsealedSenderNumber();
|
.getLimits().getRateLimitReset();
|
||||||
|
|
||||||
assertThat(unsealedSenderNumber.getMaxCardinality()).isEqualTo(99);
|
assertThat(resetRateLimitConfiguration.getBucketSize()).isEqualTo(17);
|
||||||
assertThat(unsealedSenderNumber.getTtl()).isEqualTo(Duration.ofHours(23));
|
assertThat(resetRateLimitConfiguration.getLeakRatePerMinute()).isEqualTo(44);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue