From ddec2c5c7b7842536d6d705c2de20f96e16c8aa8 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Wed, 22 Oct 2014 17:38:57 +0000
Subject: [PATCH] #2021 feature - Added blocked request table and refactoring License actions
---
securis/src/main/java/net/curisit/securis/services/ApiResource.java | 86 ++++++++++++++++++++++++------------------
1 files changed, 49 insertions(+), 37 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 7c843d0..23913e0 100644
--- a/securis/src/main/java/net/curisit/securis/services/ApiResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/ApiResource.java
@@ -28,8 +28,6 @@
import net.curisit.securis.beans.SignedLicenseBean;
import net.curisit.securis.beans.StatusBean;
import net.curisit.securis.db.License;
-import net.curisit.securis.db.LicenseType;
-import net.curisit.securis.db.Pack;
import net.curisit.securis.security.BasicSecurityContext;
import net.curisit.securis.security.Securable;
import net.curisit.securis.services.exception.SeCurisServiceException;
@@ -96,9 +94,10 @@
return Response.ok(status).build();
}
-
/**
- * Request a new license file based in a RequestBean object sent as parameter
+ * Request a new license file based in a RequestBean object sent as
+ * parameter
+ *
* @param mpfdi
* @param bsc
* @return
@@ -108,17 +107,18 @@
@POST
@Path("/request")
@Consumes(MediaType.APPLICATION_JSON)
- //TODO: Enable this: @Securable
+ // TODO: Enable this: @Securable
@Produces({
MediaType.APPLICATION_JSON
})
@Transactional
- public Response createFromRequest(RequestBean request, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException, SeCurisException {
+ public Response createFromRequest(RequestBean request, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException,
+ SeCurisException {
LOG.info("Request to get license: {}", request);
Map<String, Object> metadata = getLicenseMetadata(request);
License licDB = getLicenseData(request);
-
+
Date expirationDate = licDB.getExpirationDate();
String licenseTypeCode = licDB.getPack().getLicenseType().getCode();
String licenseCode = licDB.getCode();
@@ -126,9 +126,10 @@
SignedLicenseBean signedLic = new SignedLicenseBean(lic);
return Response.ok(signedLic).build();
}
-
+
/**
* Returns a License file in JSON format from an uploaded Request file
+ *
* @param mpfdi
* @param bsc
* @return
@@ -145,12 +146,14 @@
})
@Transactional
@SuppressWarnings("unchecked")
- public Response createFromRequestFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException, SeCurisException {
+ public Response createFromRequestFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException,
+ SeCurisServiceException, SeCurisException {
RequestBean req = new RequestBean();
- req.setAppCode(mpfdi.getFormDataPart("appCode", String.class, null));
+ req.setPackCode(mpfdi.getFormDataPart("packCode", String.class, null));
+ req.setLicenseTypeCode(mpfdi.getFormDataPart("licenseTypeCode", String.class, null));
+ req.setCustomerCode(mpfdi.getFormDataPart("customerCode", String.class, null));
req.setArch(mpfdi.getFormDataPart("arch", String.class, null));
req.setCrcLogo(mpfdi.getFormDataPart("crcLogo", String.class, null));
- req.setCustomerCode(mpfdi.getFormDataPart("customerCode", String.class, null));
req.setMacAddresses(mpfdi.getFormDataPart("macAddresses", List.class, null));
req.setOsName(mpfdi.getFormDataPart("osName", String.class, null));
@@ -170,12 +173,13 @@
@POST
@Path("/renew")
@Consumes(MediaType.APPLICATION_JSON)
- //TODO: Enable this: @Securable
+ // TODO: Enable this: @Securable
@Produces({
MediaType.APPLICATION_JSON
})
@Transactional
- public Response renewFromPreviousLicense(LicenseBean previousLic, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException, SeCurisException {
+ public Response renewFromPreviousLicense(LicenseBean previousLic, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException,
+ SeCurisException {
LOG.info("Renew license: {}", previousLic);
if (previousLic.getExpirationDate().after(DateUtils.addMonths(new Date(), 1))) {
@@ -184,16 +188,17 @@
Map<String, Object> metadata = getLicenseMetadata(previousLic);
License licDB = getLicenseData(previousLic);
-
+
Date expirationDate = licDB.getExpirationDate();
String licenseTypeCode = licDB.getPack().getLicenseType().getCode();
String licenseCode = licDB.getCode();
LicenseBean lic = licenseGenerator.generateLicense(previousLic, metadata, expirationDate, licenseTypeCode, licenseCode);
return Response.ok(lic).build();
}
-
+
/**
* Returns a new License file in JSON format based in a previous license
+ *
* @param mpfdi
* @param bsc
* @return
@@ -210,12 +215,15 @@
})
@Transactional
@SuppressWarnings("unchecked")
- public Response renewFromLicenseFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException, SeCurisServiceException, SeCurisException {
+ public Response renewFromLicenseFile(MultipartFormDataInput mpfdi, @Context BasicSecurityContext bsc) throws IOException,
+ SeCurisServiceException, SeCurisException {
LicenseBean lic = new LicenseBean();
- // TODO: Add more license parameters
- lic.setAppCode(mpfdi.getFormDataPart("appCode", String.class, null));
+
+ lic.setAppName(mpfdi.getFormDataPart("appName", String.class, null));
lic.setArch(mpfdi.getFormDataPart("arch", String.class, null));
lic.setCrcLogo(mpfdi.getFormDataPart("crcLogo", String.class, null));
+ lic.setPackCode(mpfdi.getFormDataPart("packCode", String.class, null));
+ lic.setLicenseTypeCode(mpfdi.getFormDataPart("licenseCode", String.class, null));
lic.setCustomerCode(mpfdi.getFormDataPart("customerCode", String.class, null));
lic.setMacAddresses(mpfdi.getFormDataPart("macAddresses", List.class, null));
lic.setOsName(mpfdi.getFormDataPart("osName", String.class, null));
@@ -227,46 +235,50 @@
return createFromRequest(lic, bsc);
}
-
-
-
+
private License getLicenseData(RequestBean req) throws SeCurisException {
- // TODO: The dummy expiration date is temporal, this info should be read from DB
+ // TODO: The dummy expiration date is temporal, this info should be read
+ // from DB
License lic = new License();
- lic.setExpirationDate(new Date(new Date().getTime() + (1000L * 3600 * 24 * 30 )));
- lic.setCode(req.getAppCode() + "-LIC-INTERNAL");
- LicenseType lt = new LicenseType();
- lt.setCode("TYPE-" + req.getAppCode());
- Pack pack = new Pack();
- pack.setLicenseType(lt);
- lic.setPack(pack);
+ // TODO: IMPLEMENT LICENSE GENERATION
+
+ // lic.setExpirationDate(new Date(new Date().getTime() + (1000L * 3600 *
+ // 24 * 30)));
+ // lic.setCode(req.getPackCode() + "-LIC-INTERNAL");
+ // LicenseType lt = new LicenseType();
+ // lt.setCode("TYPE-" + req.getAppCode());
+ // Pack pack = new Pack();
+ // pack.setLicenseType(lt);
+ // lic.setPack(pack);
return lic;
}
-
+
/**
* Extract the corresponding metadata for the Request license given
+ *
* @param req
* @return
* @throws SeCurisException
*/
@SuppressWarnings("unchecked")
private Map<String, Object> getLicenseMetadata(RequestBean req) throws SeCurisException {
- // TODO: The dummy metadata file is temporal, this info should be read from DB
- File dummyMetadata = new File(System.getProperty("user.home") + File.separator + ".SeCuris" + File.separator + "dummy_metadata.json");
+ // TODO: The dummy metadata file is temporal, this info should be read
+ // from DB
+ File dummyMetadata = new File(System.getProperty("user.home") + File.separator + ".SeCuris" + File.separator + "dummy_metadata.json");
Map<String, Object> metadata = null;
try {
String metadataJson = IOUtils.toString(dummyMetadata.toURI());
- metadata = (Map<String, Object>)JsonUtils.json2map(metadataJson).get(req.getAppCode());
- if (metadata == null)
- throw new SeCurisException("App code in request is unknown: " + req.getAppCode());
+ metadata = (Map<String, Object>) JsonUtils.json2map(metadataJson).get(req.getLicenseTypeCode());
+ if (metadata == null) {
+ throw new SeCurisException("App code in request is unknown: " + req.getLicenseTypeCode());
+ }
metadata = new TreeMap<>(metadata);
} catch (IOException e) {
LOG.error("Error reading dummy metadata file", e);
throw new SeCurisException("Error reading dummy metadata file");
}
-
+
return metadata;
}
-
}
--
Gitblit v1.3.2