Migrate challenge-issuing configuration into the abusive message filter module

This commit is contained in:
Jon Chambers 2021-12-08 15:35:15 -05:00 committed by Jon Chambers
parent 616db337e1
commit 5baa51d547
3 changed files with 11 additions and 33 deletions

@ -1 +1 @@
Subproject commit 9788de21103ada586e3daeffc24a618e911aabb5 Subproject commit 607b9ea14dc9c5ea448c0dc2f79419fd9c48d73f

View File

@ -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;
}
} }

View File

@ -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);
} }
} }