From e767d38a97828997ed3080d1332a3a2f2bcf8491 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Wed, 18 Jun 2014 12:06:24 +0000
Subject: [PATCH] #593 fix - Added further information when license is not valid due to HW validation
---
src/main/java/net/curisit/securis/LicenseValidator.java | 20 ++++++++++++++------
src/patch/java/net/curisit/securis/LicenseGenerator.java | 8 ++++----
2 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/src/main/java/net/curisit/securis/LicenseValidator.java b/src/main/java/net/curisit/securis/LicenseValidator.java
index 23c9ea7..66744d6 100644
--- a/src/main/java/net/curisit/securis/LicenseValidator.java
+++ b/src/main/java/net/curisit/securis/LicenseValidator.java
@@ -9,8 +9,12 @@
import net.curisit.securis.utils.LicUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
public class LicenseValidator {
+
+ private static final Logger log = LogManager.getLogger(LicenseValidator.class);
public static LicenseValidator singleton = new LicenseValidator();
private byte[] LOGO_SECRET;
@@ -28,7 +32,7 @@
}
/**
- * @return true if logo is correct
+ * @return CRC string for customer logo
*/
public String getCrcLogo() {
InputStream is = getClass().getClassLoader().getResourceAsStream("images/logo_customer.png");
@@ -36,21 +40,25 @@
String shaLogo = LicUtils.sha256(IOUtils.toByteArray(is), LOGO_SECRET);
return shaLogo;
} catch (IOException e) {
- e.printStackTrace();
+ log.warn("Customer logo was not found in images/logo_customer.png");
return null;
}
}
public void validateLogo(RequestBean reqBean) throws SeCurisException {
- String currentCRC = getCrcLogo();
- if (!currentCRC.equals(reqBean.getCrcLogo()))
- throw new SeCurisException("License logo validation failed for request data: " + JsonUtils.toJSON(reqBean));
+ if (reqBean.getCrcLogo() == null) {
+ log.info("Customer logo is not included in license file and won't be validated");
+ } else {
+ String currentCRC = getCrcLogo();
+ if (!currentCRC.equals(reqBean.getCrcLogo()))
+ throw new SeCurisException("License logo validation failed for request data: " + JsonUtils.toJSON(reqBean));
+ }
}
public void validateHW(RequestBean reqBean, String appCode, String customerCode) throws SeCurisException {
RequestBean currentHW = ReqGenerator.getInstance().createRequest(appCode, customerCode);
if (!currentHW.match(reqBean))
- throw new SeCurisException("Current System info mismatch the License System info: " + JsonUtils.toJSON(reqBean));
+ throw new SeCurisException("Current System info mismatch the License System info:\n Licensed: " + JsonUtils.toJSON(reqBean, true) + "\n Expected: " + JsonUtils.toJSON(currentHW, true));
}
}
diff --git a/src/patch/java/net/curisit/securis/LicenseGenerator.java b/src/patch/java/net/curisit/securis/LicenseGenerator.java
index 493a2d1..b9ef26e 100644
--- a/src/patch/java/net/curisit/securis/LicenseGenerator.java
+++ b/src/patch/java/net/curisit/securis/LicenseGenerator.java
@@ -111,7 +111,7 @@
Signature signature;
try {
signature = Signature.getInstance(SignatureHelper.SIGNATURE_GENERATION_ALGORITHM);
- signature.initSign(sh.generatePrivateKey(new File("/Users/cproberto/Documents/wsPython/doky/tests/privkey.pkcs8")));
+ signature.initSign(sh.generatePrivateKey(new File("/Users/cproberto/Documents/wsPython/doky/tests/securis_private_key.pkcs8")));
sh.prepareSignature(signature, licBean);
@@ -135,12 +135,12 @@
public static void main(String[] args) throws SeCurisException {
Paths.get(new File("/Users/cproberto/Documents/wsCurisIT/SeCurisClient/license.req").toURI());
- RequestBean req = ReqGenerator.getInstance().loadRequest(new File("/Users/cproberto/Documents/wsCurisIT/SeCurisClient/license.req"));
+ RequestBean req = ReqGenerator.getInstance().loadRequest(new File("/Users/cproberto/Downloads/license.req"));
Map<String, Object> metadata = new TreeMap<>();
metadata.put("maxUsers", 23);
metadata.put("maxInstances", 12);
- LicenseBean lic = LicenseGenerator.getInstance().generateLicense(req, metadata, new Date(new Date().getTime() + 3600 * 1000), "L01", "LIC-9812987123-12837129873");
- LicenseGenerator.getInstance().save(lic, new File("/Users/cproberto/Documents/wsCurisIT/SeCurisClient/license.lic"));
+ LicenseBean lic = LicenseGenerator.getInstance().generateLicense(req, metadata, new Date(new Date().getTime() + 3600 * 1000), "CurisData01", "LIC-9812987123-12837129873");
+ LicenseGenerator.getInstance().save(lic, new File("/Users/cproberto/Downloads/license_curisdata.lic"));
System.out.print("os.arch: " + System.getProperty("os.arch") + " " + System.getProperty("os.name"));
--
Gitblit v1.3.2