From 464f9fc6047ff994728acf69f6f0d3971984b492 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Mon, 29 Sep 2014 17:16:21 +0000
Subject: [PATCH] #2021 fix - Changed "ping" command return to JSON, StatusBean
---
src/main/java/net/curisit/securis/ConnectionManager.java | 2
src/main/java/net/curisit/securis/utils/Params.java | 3 +
src/main/java/net/curisit/securis/LicenseManager.java | 64 +++++++++++++++++++-------------
src/main/java/net/curisit/securis/beans/StatusBean.java | 32 ++++++++++++++++
src/main/java/net/curisit/securis/License.java | 16 ++++++-
5 files changed, 86 insertions(+), 31 deletions(-)
diff --git a/src/main/java/net/curisit/securis/ConnectionManager.java b/src/main/java/net/curisit/securis/ConnectionManager.java
index 1312390..06f74f9 100644
--- a/src/main/java/net/curisit/securis/ConnectionManager.java
+++ b/src/main/java/net/curisit/securis/ConnectionManager.java
@@ -41,7 +41,7 @@
private final CloseableHttpClient httpClient;
private ConnectionManager() throws SeCurisException {
- String aux = Params.get(Params.KEYS.LICENSE_SERVER_URL, "https://securis.curistec.com/api");
+ String aux = Params.get(Params.KEYS.LICENSE_SERVER_URL, Params.DEFAUT_SERVER_URL);
if (aux.endsWith("/")) {
serverUrl = aux.substring(0, aux.length()-2);
} else {
diff --git a/src/main/java/net/curisit/securis/License.java b/src/main/java/net/curisit/securis/License.java
index 1f2a210..2d51327 100644
--- a/src/main/java/net/curisit/securis/License.java
+++ b/src/main/java/net/curisit/securis/License.java
@@ -3,6 +3,7 @@
import java.io.File;
import java.net.URISyntaxException;
+import net.curisit.securis.beans.SignedLicenseBean;
import net.curisit.securis.utils.Params;
import org.apache.commons.cli.CommandLine;
@@ -14,6 +15,7 @@
import org.apache.commons.cli.PosixParser;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.codehaus.jackson.map.DeserializerFactory.Config;
/**
* Main class when SeCuris client is used from command line.
@@ -40,7 +42,7 @@
*/
public class License {
- private static final Logger LOG = LogManager.getLogger(License.class);
+ private static final Logger LOG = LogManager.getLogger(License.class);
/**
* Aplication entry point when it used as CLI
@@ -83,12 +85,20 @@
}
if (cmd.hasOption('c')) {
- LicenseManager.getInstance().requestLicense();
+ SignedLicenseBean lic = LicenseManager.getInstance().requestLicense();
+ String filename = cmd.getOptionValue("lic_file");
+ if (filename == null)
+ filename = "./license.lic";
+ File file = new File(filename);
+ LicenseManager.getInstance().save(lic, file);
+ LOG.info("License file sucessfully saved in file: {}", file.getAbsolutePath());
System.exit(0);
}
if (cmd.hasOption('t')) {
LicenseManager.getInstance().testServer();
+ LOG.info("Server is OK, url: {}", Params.get(Params.KEYS.LICENSE_SERVER_URL, Params.DEFAUT_SERVER_URL));
+
System.exit(0);
}
@@ -163,7 +173,7 @@
options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("validate").withDescription("Validate lic file.").hasArg(true).create('l'));
options.addOption("g", "gen_request", false, "Generate request file. If --rfile parameter is missing then It is generated in current directory.");
- options.addOption(OptionBuilder.withLongOpt("create").withDescription("Request a license file to server.").hasArg(false).create('c'));
+ options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("create").withDescription("Request a license file to server.").hasArg(true).hasOptionalArg().create('c'));
options.addOption("t", "test_lc", false, "Test if License Server (LC) is available. ");
options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("renew").withDescription("Synchronize/renew the current license file.").hasArg(true).create('r'));
diff --git a/src/main/java/net/curisit/securis/LicenseManager.java b/src/main/java/net/curisit/securis/LicenseManager.java
index ecec7a5..69e3259 100644
--- a/src/main/java/net/curisit/securis/LicenseManager.java
+++ b/src/main/java/net/curisit/securis/LicenseManager.java
@@ -11,6 +11,7 @@
import net.curisit.securis.beans.LicenseBean;
import net.curisit.securis.beans.RequestBean;
import net.curisit.securis.beans.SignedLicenseBean;
+import net.curisit.securis.beans.StatusBean;
import net.curisit.securis.utils.JsonUtils;
import net.curisit.securis.utils.Params;
import net.curisit.securis.utils.SignatureHelper;
@@ -86,37 +87,48 @@
* @return The license bean returned by the server
* @throws SeCurisException
*/
- public LicenseBean requestLicense() throws SeCurisException {
+ public SignedLicenseBean requestLicense() throws SeCurisException {
RequestBean req = ReqGenerator.getInstance().createRequest(Params.get(Params.KEYS.APPLICATION_CODE), Params.get(Params.KEYS.CUSTOMER_CODE));
- LicenseBean lic = requestLicenseToServer(req);
+ SignedLicenseBean lic = requestLicenseToServer(req);
return lic;
}
- /**
- * Generate a license file using a {@link LicenseBean}
- *
- * @param license
- * @param file
- * @throws SeCurisException
- */
- public void save(LicenseBean license, File file) throws SeCurisException {
- SignedLicenseBean signedLic = new SignedLicenseBean(license);
- byte[] json;
- try {
- json = JsonUtils.toJSON(signedLic, true).getBytes("utf-8");
- Files.write(Paths.get(file.toURI()), json, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
- } catch (UnsupportedEncodingException e) {
- LOG.error("Error creating json doc from license: " + license, e);
- throw new SeCurisException("Error creating json doc from license: " + license, e);
- } catch (IOException e) {
- LOG.error("Error creating license file: " + file, e);
- throw new SeCurisException("Error creating json doc from license: " + license, e);
- }
+ /**
+ * Generate a license file using a {@link LicenseBean}
+ *
+ * @param license
+ * @param file
+ * @throws SeCurisException
+ */
+ public void save(LicenseBean license, File file) throws SeCurisException {
+ SignedLicenseBean signedLic = new SignedLicenseBean(license);
+ save(signedLic, file);
+ }
- LOG.debug("License saved in {}", file);
+ /**
+ * Generate a license file using a {@link LicenseBean}
+ *
+ * @param license
+ * @param file
+ * @throws SeCurisException
+ */
+ public void save(SignedLicenseBean signedLic, File file) throws SeCurisException {
+ byte[] json;
+ try {
+ json = JsonUtils.toJSON(signedLic, true).getBytes("utf-8");
+ Files.write(Paths.get(file.toURI()), json, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
+ } catch (UnsupportedEncodingException e) {
+ LOG.error("Error creating json doc from license: " + signedLic, e);
+ throw new SeCurisException("Error creating json doc from license: " + signedLic, e);
+ } catch (IOException e) {
+ LOG.error("Error creating license file: " + file, e);
+ throw new SeCurisException("Error creating json doc from license: " + signedLic, e);
+ }
- }
+ LOG.debug("License saved in {}", file);
+
+ }
private SignedLicenseBean requestLicenseToServer(RequestBean req) throws SeCurisException {
SignedLicenseBean lic = ConnectionManager.getInstance().executePost(Command.CREATE_LIC, SignedLicenseBean.class, req);
@@ -157,8 +169,8 @@
}
public void testServer() throws SeCurisException {
- String pingMsg = ConnectionManager.getInstance().executeGet(Command.RENEW_LIC, String.class);
- if (!PING_MESSAGE.equals(pingMsg)) {
+ StatusBean status = ConnectionManager.getInstance().executeGet(Command.TEST, StatusBean.class);
+ if (!PING_MESSAGE.equals(status.getMessage())) {
throw new SeCurisException("SeCuris Server is not running in given URL");
}
}
diff --git a/src/main/java/net/curisit/securis/beans/StatusBean.java b/src/main/java/net/curisit/securis/beans/StatusBean.java
new file mode 100644
index 0000000..a008b7f
--- /dev/null
+++ b/src/main/java/net/curisit/securis/beans/StatusBean.java
@@ -0,0 +1,32 @@
+package net.curisit.securis.beans;
+
+import java.util.Date;
+
+import org.codehaus.jackson.annotate.JsonAutoDetect;
+
+@JsonAutoDetect
+public class StatusBean extends RequestBean {
+ private Date date;
+ private String message;
+
+ public StatusBean() {
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+
+}
diff --git a/src/main/java/net/curisit/securis/utils/Params.java b/src/main/java/net/curisit/securis/utils/Params.java
index 3127650..14d1b37 100644
--- a/src/main/java/net/curisit/securis/utils/Params.java
+++ b/src/main/java/net/curisit/securis/utils/Params.java
@@ -22,7 +22,8 @@
/**
* Key used to store config file resource location. In a web application, can be set as initial parameter in a servlet loaded on startup
*/
- public static final String KEY_CONFIG_FILE = "/securis-client.properties";
+ public static final String DEFAUT_SERVER_URL = "https://securis.curistec.com/api";
+ public static final String KEY_CONFIG_FILE = "/securis-client.properties";
private static Properties params = null;
--
Gitblit v1.3.2