From c350138caae12718d07e1acfed88e8352adb16c5 Mon Sep 17 00:00:00 2001 From: Braydon Date: Fri, 2 Jun 2023 00:39:19 -0400 Subject: [PATCH] Simple HWID validation --- .../license/controller/LicenseController.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/braydon/license/controller/LicenseController.java b/src/main/java/me/braydon/license/controller/LicenseController.java index aeaef73..b577aa9 100644 --- a/src/main/java/me/braydon/license/controller/LicenseController.java +++ b/src/main/java/me/braydon/license/controller/LicenseController.java @@ -61,13 +61,26 @@ public final class LicenseController { if (IPUtils.getIpType(ip) == -1) { throw new APIException(HttpStatus.BAD_REQUEST, "Invalid IP address"); } + // Ensure the HWID is valid + // TODO: improve :) + String hwidString = hwid.getAsString(); + boolean invalidHwid = true; + if (hwidString.contains("-")) { + int segments = hwidString.substring(0, hwidString.lastIndexOf("-")).split("-").length; + if (segments == 4) { + invalidHwid = false; + } + } + if (invalidHwid) { + throw new APIException(HttpStatus.BAD_REQUEST, "Invalid HWID"); + } // Check the license License license = service.check( key.getAsString(), product.getAsString(), ip, - hwid.getAsString() + hwidString ); // Return OK with the license DTO return ResponseEntity.ok(new LicenseDTO(