From 523edc2956a42bda7d33884fcbbb6018addda4b0 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Tue, 18 Apr 2017 17:07:34 +0000
Subject: [PATCH] #3582 feature - Changed API to take in account pack data, (valid end date, status, ...) and some minor fixes
---
securis/src/main/java/net/curisit/securis/services/ApiResource.java | 21 +++++++++++++++++++--
1 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/services/ApiResource.java b/securis/src/main/java/net/curisit/securis/services/ApiResource.java
index 5211a5e..4e1812b 100644
--- a/securis/src/main/java/net/curisit/securis/services/ApiResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/ApiResource.java
@@ -34,6 +34,7 @@
import net.curisit.securis.db.LicenseHistory;
import net.curisit.securis.db.LicenseStatus;
import net.curisit.securis.db.Pack;
+import net.curisit.securis.db.PackStatus;
import net.curisit.securis.db.User;
import net.curisit.securis.db.User.Rol;
import net.curisit.securis.ioc.EnsureTransaction;
@@ -197,7 +198,9 @@
/**
* License validation on server side, in this case we validate that the
- * current licenses has not been cancelled.
+ * current licenses has not been cancelled and they are still in valid
+ * period. If the pack has reached the end valid period, the license is no
+ * longer valid.
*
* @param currentLic
* @param bsc
@@ -219,12 +222,22 @@
throw new SeCurisServiceException(ErrorCodes.LICENSE_IS_EXPIRED, "The license is expired");
}
+ License existingLic = licenseHelper.getActiveLicenseFromDB(currentLic, em);
+
+ Pack pack = existingLic.getPack();
+ if (pack.getEndValidDate().before(new Date())) {
+ throw new SeCurisServiceException(ErrorCodes.LICENSE_PACK_IS_NOT_VALID, "The pack end valid date has been reached");
+ }
+ if (pack.getStatus() != PackStatus.ACTIVE) {
+ LOG.error("The Pack {} status is not active, is: {}", pack.getCode(), pack.getStatus());
+ throw new SeCurisServiceException(ErrorCodes.LICENSE_PACK_IS_NOT_VALID, "The pack status is not Active");
+ }
+
try {
SignatureHelper.getInstance().validateSignature(currentLic);
} catch (SeCurisException ex) {
throw new SeCurisServiceException(ErrorCodes.LICENSE_DATA_IS_NOT_VALID, "The license signature is not valid");
}
- licenseHelper.assertLicenseStatusIsActive(currentLic, em);
return Response.ok(currentLic).build();
}
@@ -353,6 +366,10 @@
} else {
pack = lic.getPack();
}
+ if (pack.getStatus() != PackStatus.ACTIVE) {
+ LOG.error("The Pack {} status is not active, is: {}", pack.getCode(), pack.getStatus());
+ throw new SeCurisServiceException(ErrorCodes.LICENSE_DATA_IS_NOT_VALID, "The pack status is not Active");
+ }
SignedLicenseBean signedLicense;
try {
String licCode;
--
Gitblit v1.3.2