From dba1711e8d023145cfe5879cfef6872ca86c9b78 Mon Sep 17 00:00:00 2001 From: Chris Eager Date: Wed, 8 Dec 2021 14:24:36 -0800 Subject: [PATCH] Convert `AbusiveHostRule` to a record --- .../controllers/AccountController.java | 7 +++--- .../storage/AbusiveHostRule.java | 23 +------------------ .../storage/AbusiveHostRules.java | 6 ++--- .../tests/storage/AbusiveHostRulesTest.java | 16 ++++++------- 4 files changed, 15 insertions(+), 37 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java index 1184bd4ed..cfec6b46e 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java @@ -92,7 +92,6 @@ import org.whispersystems.textsecuregcm.util.Hex; import org.whispersystems.textsecuregcm.util.ImpossiblePhoneNumberException; import org.whispersystems.textsecuregcm.util.NonNormalizedPhoneNumberException; import org.whispersystems.textsecuregcm.util.Username; -import org.whispersystems.textsecuregcm.util.UsernameValidator; import org.whispersystems.textsecuregcm.util.Util; import org.whispersystems.textsecuregcm.util.VerificationCode; @@ -728,14 +727,14 @@ public class AccountController { List abuseRules = abusiveHostRules.getAbusiveHostRulesFor(sourceHost); for (AbusiveHostRule abuseRule : abuseRules) { - if (abuseRule.isBlocked()) { + if (abuseRule.blocked()) { logger.info("Blocked host: {}, {}, {} ({})", transport, number, sourceHost, forwardedFor); blockedHostMeter.mark(); return new CaptchaRequirement(true, false); } - if (!abuseRule.getRegions().isEmpty()) { - if (abuseRule.getRegions().stream().noneMatch(number::startsWith)) { + if (!abuseRule.regions().isEmpty()) { + if (abuseRule.regions().stream().noneMatch(number::startsWith)) { logger.info("Restricted host: {}, {}, {} ({})", transport, number, sourceHost, forwardedFor); filteredHostMeter.mark(); return new CaptchaRequirement(true, false); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRule.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRule.java index f8f009e1e..9977022c8 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRule.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRule.java @@ -7,27 +7,6 @@ package org.whispersystems.textsecuregcm.storage; import java.util.List; -public class AbusiveHostRule { +public record AbusiveHostRule(String host, boolean blocked, List regions) { - private final String host; - private final boolean blocked; - private final List regions; - - public AbusiveHostRule(String host, boolean blocked, List regions) { - this.host = host; - this.blocked = blocked; - this.regions = regions; - } - - public List getRegions() { - return regions; - } - - public boolean isBlocked() { - return blocked; - } - - public String getHost() { - return host; - } } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRules.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRules.java index 3f04dc59b..bd4d39d96 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRules.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRules.java @@ -112,10 +112,10 @@ public class AbusiveHostRules { try (Timer.Context timer = insertTimer.time()) { return handle.createUpdate( "INSERT INTO abusive_host_rules(host, blocked, notes, regions) VALUES(:host::inet, :blocked, :notes, :regions) ON CONFLICT DO NOTHING") - .bind("host", rule.getHost()) - .bind("blocked", rule.isBlocked() ? 1 : 0) + .bind("host", rule.host()) + .bind("blocked", rule.blocked() ? 1 : 0) .bind("notes", notes) - .bind("regions", String.join(",", rule.getRegions())) + .bind("regions", String.join(",", rule.regions())) .execute(); } })); diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AbusiveHostRulesTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AbusiveHostRulesTest.java index 63ebc528c..09b23399b 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AbusiveHostRulesTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AbusiveHostRulesTest.java @@ -69,9 +69,9 @@ class AbusiveHostRulesTest { List rules = abusiveHostRules.getAbusiveHostRulesFor("192.168.1.1"); assertThat(rules.size()).isEqualTo(1); - assertThat(rules.get(0).getRegions().isEmpty()).isTrue(); - assertThat(rules.get(0).getHost()).isEqualTo("192.168.1.1"); - assertThat(rules.get(0).isBlocked()).isTrue(); + assertThat(rules.get(0).regions().isEmpty()).isTrue(); + assertThat(rules.get(0).host()).isEqualTo("192.168.1.1"); + assertThat(rules.get(0).blocked()).isTrue(); } @Test @@ -84,9 +84,9 @@ class AbusiveHostRulesTest { List rules = abusiveHostRules.getAbusiveHostRulesFor("192.168.1.1"); assertThat(rules.size()).isEqualTo(1); - assertThat(rules.get(0).getRegions().isEmpty()).isTrue(); - assertThat(rules.get(0).getHost()).isEqualTo("192.168.1.0/24"); - assertThat(rules.get(0).isBlocked()).isTrue(); + assertThat(rules.get(0).regions().isEmpty()).isTrue(); + assertThat(rules.get(0).host()).isEqualTo("192.168.1.0/24"); + assertThat(rules.get(0).blocked()).isTrue(); } @Test @@ -112,8 +112,8 @@ class AbusiveHostRulesTest { List rules = abusiveHostRules.getAbusiveHostRulesFor("192.168.1.100"); assertThat(rules.size()).isEqualTo(1); - assertThat(rules.get(0).isBlocked()).isFalse(); - assertThat(rules.get(0).getRegions()).isEqualTo(Arrays.asList("+1", "+49")); + assertThat(rules.get(0).blocked()).isFalse(); + assertThat(rules.get(0).regions()).isEqualTo(Arrays.asList("+1", "+49")); } @Test