From 7d8713e88c7872b195f7e4d02ac4812536ae196b Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Tue, 22 Sep 2015 13:53:51 +0000
Subject: [PATCH] #2756 feature - Added lic activation using activationCode
---
src/main/java/net/curisit/securis/LicenseManager.java | 75 ++++++++++++++++++++++++++-----------
1 files changed, 52 insertions(+), 23 deletions(-)
diff --git a/src/main/java/net/curisit/securis/LicenseManager.java b/src/main/java/net/curisit/securis/LicenseManager.java
index 49fb807..01625fc 100644
--- a/src/main/java/net/curisit/securis/LicenseManager.java
+++ b/src/main/java/net/curisit/securis/LicenseManager.java
@@ -38,7 +38,8 @@
public static final String HEADER_LICENSE_NAME_OR_REFERENCE = "X-SECURIS-LIC-NAMEREF";
public static final String HEADER_LICENSE_EMAIL = "X-SECURIS-LIC-EMAIL";
- private LicenseManager() {}
+ private LicenseManager() {
+ }
public static LicenseManager getInstance() {
return singleton;
@@ -62,7 +63,8 @@
}
/**
- * Validates the license stored in {@code licFile} and get the corresponding LicenseBean
+ * Validates the license stored in {@code licFile} and get the corresponding
+ * LicenseBean
* <p>
* The validation includes:
* <ul>
@@ -82,7 +84,8 @@
}
/**
- * Validates the license stored in {@code licFile} and get the corresponding LicenseBean. The License date is not validated
+ * Validates the license stored in {@code licFile} and get the corresponding
+ * LicenseBean. The License date is not validated
* <p>
* The validation includes:
* <ul>
@@ -99,7 +102,12 @@
public LicenseBean validateLicense(File licFile, boolean excludeDateValidation) throws SeCurisException {
LicenseBean licBean = load(licFile);
SignatureHelper.getInstance().validateSignature(licBean);
- LicenseValidator.getInstance().validateHW(licBean, Params.get(Params.KEYS.LIC_TYPE_CODE, Params.get(Params.KEYS.APPLICATION_CODE)), Params.get(Params.KEYS.CUSTOMER_CODE), Params.get(Params.KEYS.PACK_CODE));
+ if (licBean.getActivationCode() != null) {
+ LicenseValidator.getInstance().validateHW(licBean, Params.get(Params.KEYS.APPLICATION_CODE), licBean.getActivationCode());
+ } else {
+ LicenseValidator.getInstance().validateHW(licBean, Params.get(Params.KEYS.LIC_TYPE_CODE, Params.get(Params.KEYS.APPLICATION_CODE)),
+ Params.get(Params.KEYS.CUSTOMER_CODE), Params.get(Params.KEYS.PACK_CODE));
+ }
LicenseValidator.getInstance().validateLogo(licBean);
if (!excludeDateValidation) {
@@ -118,7 +126,21 @@
* @throws SeCurisException
*/
public SignedLicenseBean requestLicense(String nameOrReference, String email) throws SeCurisException {
- RequestBean req = ReqGenerator.getInstance().createRequest(Params.get(Params.KEYS.LIC_TYPE_CODE, Params.get(Params.KEYS.APPLICATION_CODE)), Params.get(Params.KEYS.CUSTOMER_CODE), Params.get(Params.KEYS.PACK_CODE));
+ RequestBean req = ReqGenerator.getInstance().createRequest(Params.get(Params.KEYS.LIC_TYPE_CODE, Params.get(Params.KEYS.APPLICATION_CODE)),
+ Params.get(Params.KEYS.CUSTOMER_CODE), Params.get(Params.KEYS.PACK_CODE));
+
+ SignedLicenseBean lic = requestLicenseToServer(req, nameOrReference, email);
+ return lic;
+ }
+
+ /**
+ * Request to server for a valid license
+ *
+ * @return The license bean returned by the server
+ * @throws SeCurisException
+ */
+ public SignedLicenseBean requestLicense(String nameOrReference, String email, String activationCode) throws SeCurisException {
+ RequestBean req = ReqGenerator.getInstance().createRequest(Params.get(Params.KEYS.APPLICATION_CODE), activationCode);
SignedLicenseBean lic = requestLicenseToServer(req, nameOrReference, email);
return lic;
@@ -170,7 +192,8 @@
}
/**
- * Creates a new request file with current hardware in the File passed as parameter
+ * Creates a new request file with current hardware in the File passed as
+ * parameter
*
* @param outputRequestFile
* File where the request data will be saved
@@ -178,7 +201,8 @@
* @throws SeCurisException
*/
public RequestBean createRequestFile(File outputRequestFile) throws SeCurisException {
- RequestBean req = ReqGenerator.getInstance().createRequest(Params.get(Params.KEYS.LIC_TYPE_CODE, Params.get(Params.KEYS.APPLICATION_CODE)), Params.get(Params.KEYS.CUSTOMER_CODE), Params.get(Params.KEYS.PACK_CODE));
+ RequestBean req = ReqGenerator.getInstance().createRequest(Params.get(Params.KEYS.LIC_TYPE_CODE, Params.get(Params.KEYS.APPLICATION_CODE)),
+ Params.get(Params.KEYS.CUSTOMER_CODE), Params.get(Params.KEYS.PACK_CODE));
ReqGenerator.getInstance().save(req, outputRequestFile);
@@ -186,11 +210,30 @@
}
/**
- * Send the current license file to server, which is previously validated, to get a renewed one if it is prepared in server side.
+ * Creates a new request file with current hardware in the File passed as
+ * parameter
+ *
+ * @param outputRequestFile
+ * File where the request data will be saved
+ * @return The generated request bean
+ * @throws SeCurisException
+ */
+ public RequestBean createRequestFile(File outputRequestFile, String activationCode) throws SeCurisException {
+ RequestBean req = ReqGenerator.getInstance().createRequest(Params.get(Params.KEYS.APPLICATION_CODE), activationCode);
+
+ ReqGenerator.getInstance().save(req, outputRequestFile);
+
+ return req;
+ }
+
+ /**
+ * Send the current license file to server, which is previously validated,
+ * to get a renewed one if it is prepared in server side.
*
* @param licenseFile
* Current and valid License file
- * @return New license bean if server creates a new one, otherwise the same current License bean will be returned
+ * @return New license bean if server creates a new one, otherwise the same
+ * current License bean will be returned
* @throws SeCurisException
*/
public SignedLicenseBean renew(File licenseFile) throws SeCurisException {
@@ -220,18 +263,4 @@
}
}
- public static void main(String[] args) throws SeCurisException {
- String filename = "/Users/rob/.doxr/doxr.lic";
-
- if (filename == null)
- filename = "./license.req";
- File file = new File(filename);
- LicenseManager.getInstance().validateLicense(file);
- LOG.info("Validation Ok");
- String r = "{\"licenseTypeCode\":\"DX01\",\"packCode\":\"DEVDX01\",\"arch\":\"x86_64\",\"osName\":\"darwin\",\"customerCode\":\"CIT\",\"macAddresses\":[\"60:c5:47:03:cf:c8\",\"b2:00:12:b6:88:e0\"]}";
- RequestBean rb = JsonUtils.json2object(r, RequestBean.class);
- System.out.println(rb);
- LOG.info("Request file {} generated OK", file.getAbsolutePath());
-
- }
}
--
Gitblit v1.3.2