Account for fronted regions

This commit is contained in:
Moxie Marlinspike 2020-03-14 19:07:42 -07:00
parent 0d3f94860b
commit 350f5ccb3c
1 changed files with 7 additions and 1 deletions

View File

@ -54,6 +54,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Stream;
import static com.codahale.metrics.MetricRegistry.name;
import io.dropwizard.auth.Auth;
@ -68,6 +69,8 @@ public class DirectoryController {
"unexpected-error",
};
private static final String[] FRONTED_REGIONS = {"+20", "+971", "+968", "+974"};
private final Logger logger = LoggerFactory.getLogger(DirectoryController.class);
private final MetricRegistry metricRegistry = SharedMetricRegistries.getOrCreate(Constants.METRICS_NAME);
private final Histogram contactsHistogram = metricRegistry.histogram(name(getClass(), "contacts"));
@ -175,7 +178,10 @@ public class DirectoryController {
.reduce((a, b) -> b)
.orElseThrow();
rateLimiters.getContactsIpLimiter().validate(requester);
if (Stream.of(FRONTED_REGIONS).noneMatch(region -> account.getNumber().startsWith(region))) {
rateLimiters.getContactsIpLimiter().validate(requester);
}
rateLimiters.getContactsLimiter().validate(account.getNumber(), contacts.getContacts().size());
contactsHistogram.update(contacts.getContacts().size());