Add MaxMind debug info
This commit is contained in:
parent
4313f6f14f
commit
3a838b8b56
@ -331,7 +331,7 @@ public final class APIv3 extends AbstractVerticle {
|
|||||||
ctx.response().setStatusCode(code);
|
ctx.response().setStatusCode(code);
|
||||||
|
|
||||||
if (!ctx.request().path().contains("dumps")) {
|
if (!ctx.request().path().contains("dumps")) {
|
||||||
log.info(gson.toJson(response));
|
//log.info(gson.toJson(response));
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.response().end(gson.toJson(response));
|
ctx.response().end(gson.toJson(response));
|
||||||
|
@ -6,6 +6,7 @@ import fr.javatic.mongo.jacksonCodec.Entity;
|
|||||||
import fr.javatic.mongo.jacksonCodec.objectId.Id;
|
import fr.javatic.mongo.jacksonCodec.objectId.Id;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.frozenorb.apiv3.APIv3;
|
import net.frozenorb.apiv3.APIv3;
|
||||||
import net.frozenorb.apiv3.maxmind.MaxMindResult;
|
import net.frozenorb.apiv3.maxmind.MaxMindResult;
|
||||||
import net.frozenorb.apiv3.util.MaxMindUtils;
|
import net.frozenorb.apiv3.util.MaxMindUtils;
|
||||||
@ -15,6 +16,7 @@ import java.time.Instant;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Entity
|
@Entity
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public final class IpIntel {
|
public final class IpIntel {
|
||||||
@ -34,22 +36,31 @@ public final class IpIntel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void findOrCreateById(String id, SingleResultCallback<IpIntel> callback) {
|
public static void findOrCreateById(String id, SingleResultCallback<IpIntel> callback) {
|
||||||
|
log.info("ip intel for " + id + " queried...");
|
||||||
|
|
||||||
findById(id, (existingIpIntel, error) -> {
|
findById(id, (existingIpIntel, error) -> {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
|
log.info("ip intel for " + id + " db check failed");
|
||||||
callback.onResult(null, error);
|
callback.onResult(null, error);
|
||||||
} else if (existingIpIntel != null) {
|
} else if (existingIpIntel != null) {
|
||||||
|
log.info("ip intel for " + id + " found in db, returning that");
|
||||||
callback.onResult(existingIpIntel, null);
|
callback.onResult(existingIpIntel, null);
|
||||||
} else {
|
} else {
|
||||||
|
log.info("ip intel for " + id + " not found, calling maxmind");
|
||||||
MaxMindUtils.getInsights(id, (maxMindResult, error2) -> {
|
MaxMindUtils.getInsights(id, (maxMindResult, error2) -> {
|
||||||
if (error2 != null) {
|
if (error2 != null) {
|
||||||
|
log.info("ip intel for " + id + " maxmind query failed");
|
||||||
callback.onResult(null, error2);
|
callback.onResult(null, error2);
|
||||||
} else {
|
} else {
|
||||||
|
log.info("ip intel for " + id + " returned from maxmind, inserting");
|
||||||
IpIntel newIpIntel = new IpIntel(id, maxMindResult);
|
IpIntel newIpIntel = new IpIntel(id, maxMindResult);
|
||||||
|
|
||||||
ipIntelCollection.insertOne(newIpIntel, (ignored, error3) -> {
|
ipIntelCollection.insertOne(newIpIntel, (ignored, error3) -> {
|
||||||
if (error3 != null) {
|
if (error3 != null) {
|
||||||
|
log.info("ip intel for " + id + " insertion failed");
|
||||||
callback.onResult(null, error3);
|
callback.onResult(null, error3);
|
||||||
} else {
|
} else {
|
||||||
|
log.info("ip intel for " + id + " insertion succeeded");
|
||||||
callback.onResult(newIpIntel, null);
|
callback.onResult(newIpIntel, null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -6,11 +6,13 @@ import io.vertx.core.http.HttpClient;
|
|||||||
import io.vertx.core.http.HttpClientOptions;
|
import io.vertx.core.http.HttpClientOptions;
|
||||||
import io.vertx.core.json.JsonObject;
|
import io.vertx.core.json.JsonObject;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.frozenorb.apiv3.APIv3;
|
import net.frozenorb.apiv3.APIv3;
|
||||||
import net.frozenorb.apiv3.maxmind.MaxMindResult;
|
import net.frozenorb.apiv3.maxmind.MaxMindResult;
|
||||||
|
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
public class MaxMindUtils {
|
public class MaxMindUtils {
|
||||||
|
|
||||||
@ -21,6 +23,8 @@ public class MaxMindUtils {
|
|||||||
public static void getInsights(String ip, SingleResultCallback<MaxMindResult> callback) {
|
public static void getInsights(String ip, SingleResultCallback<MaxMindResult> callback) {
|
||||||
String authHeader = "Basic " + Base64.getEncoder().encodeToString((maxMindUserId + ":" + maxMindLicenseKey).getBytes(Charsets.UTF_8));
|
String authHeader = "Basic " + Base64.getEncoder().encodeToString((maxMindUserId + ":" + maxMindLicenseKey).getBytes(Charsets.UTF_8));
|
||||||
|
|
||||||
|
log.warn("Requesting ip info for " + ip + " from MaxMind.");
|
||||||
|
|
||||||
httpsClient.get(443, "geoip.maxmind.com", "/geoip/v2.1/insights/" + ip, (response) -> {
|
httpsClient.get(443, "geoip.maxmind.com", "/geoip/v2.1/insights/" + ip, (response) -> {
|
||||||
response.bodyHandler((body) -> {
|
response.bodyHandler((body) -> {
|
||||||
JsonObject bodyJson = new JsonObject(body.toString());
|
JsonObject bodyJson = new JsonObject(body.toString());
|
||||||
|
Loading…
Reference in New Issue
Block a user