From 3ef2ddd5cb1ee57317ffb757aceb86355a612a17 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Mon, 24 Feb 2014 14:55:10 +0000
Subject: [PATCH] #593 feature - Changed CRC logo inclusion in request to optional, the server will check if logo is mandatory or not
---
src/main/resources/images/logo_customer2.png | 0
src/main/java/net/curisit/securis/utils/Params.java | 2
src/main/java/net/curisit/securis/LicenseManager.java | 8 +-
src/main/java/net/curisit/securis/SignatureHelper.java | 23 -------
src/main/java/net/curisit/securis/HWInfo.java | 2
src/main/java/net/curisit/securis/ReqGenerator.java | 6 +
src/main/resources/securis-client.properties | 6 +-
src/main/java/net/curisit/securis/beans/RequestBean.java | 4
pom.xml | 17 +++++
src/main/java/net/curisit/securis/License.java | 78 ++++++++++++++++++++++---
src/patch/java/net/curisit/securis/LicenseGenerator.java | 2
11 files changed, 101 insertions(+), 47 deletions(-)
diff --git a/pom.xml b/pom.xml
index 1ce4609..b07e561 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,6 +13,17 @@
<target>1.7</target>
</configuration>
</plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>net.curisit.securis.License</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
</plugins>
</build>
<dependencies>
@@ -46,5 +57,11 @@
<artifactId>log4j-core</artifactId>
<version>2.0-rc1</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.4</version>
+ <type>maven-plugin</type>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/src/main/java/net/curisit/securis/HWInfo.java b/src/main/java/net/curisit/securis/HWInfo.java
index 053d260..fc1d0eb 100644
--- a/src/main/java/net/curisit/securis/HWInfo.java
+++ b/src/main/java/net/curisit/securis/HWInfo.java
@@ -79,7 +79,7 @@
for (byte[] mac : macs) {
macAddresses.add(printMacAddress(mac));
}
- log.info("MAC Addresses: {}", macAddresses);
+ log.debug("MAC Addresses: {}", macAddresses);
return macAddresses;
} catch (UnknownHostException e) {
diff --git a/src/main/java/net/curisit/securis/License.java b/src/main/java/net/curisit/securis/License.java
index dd634bb..4ad5059 100644
--- a/src/main/java/net/curisit/securis/License.java
+++ b/src/main/java/net/curisit/securis/License.java
@@ -2,7 +2,6 @@
import java.io.File;
import java.net.URISyntaxException;
-import java.util.Date;
import net.curisit.securis.utils.Params;
@@ -16,21 +15,45 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+/**
+ * Main class when SeCuris client is used from command line.
+ *
+ * <pre>
+ * usage: securis-client [-c] [-g] [-h] [-l <lic_file>] [-r <lic_file>] [-s
+ * <url_license_server>] [-t]
+ * -c,--create Request a license file from server.
+ * --rfile and --server parameters are
+ * mandatory.
+ * -g,--gen_request Generate request file. If --rfile
+ * parameter is missing then It is
+ * generated in current directory.
+ * -h,--help Show help.
+ * -l,--validate <lic_file> Validate lic file.
+ * -r,--renew <lic_file> Synchronize/renew the current license
+ * file. --server parameter is mandatory.
+ * -s,--server <url_license_server> License server url.
+ * -t,--test_lc Test if License Server (LC) is
+ * available. --server parameter is
+ * mandatory.
+ * </pre>
+ *
+ * @author roberto <roberto.sanchez@curisit.net>
+ *
+ */
public class License {
- static {
- // BasicConfigurator.configure(new ConsoleAppender());
- // PropertyConfigurator.configure("/log4j.xml");
- // LogManager.getRootLogger().
- }
-
- // private static final Logger log = LoggerFactory.getLogger(License.class);
private static final Logger log = LogManager.getLogger(License.class);
+ /**
+ * Aplication entry point when it used as CLI
+ *
+ * @param args
+ * @throws URISyntaxException
+ */
public static void main(String[] args) throws URISyntaxException {
// Configuration conf = XMLConfigurationFactory.getInstance().getConfiguration("config", License.class.getResource("/log4j.xml").toURI());
- log.info("Tool init {}", new Date());
+ log.debug("SeCuris client tool init ");
checkConfigFile();
CommandLine cmd = getCommandLine(args);
@@ -61,8 +84,43 @@
System.exit(0);
}
+ if (cmd.hasOption('c')) {
+ String reqFilename = cmd.getOptionValue("rfile");
+ checkMandatoryParameter(reqFilename, "rfile");
+ String server = cmd.getOptionValue("server");
+ checkMandatoryParameter(server, "server");
+
+ log.warn("This command is not yet implemented");
+ System.exit(0);
+ }
+
+ if (cmd.hasOption('t')) {
+ String server = cmd.getOptionValue("server");
+ checkMandatoryParameter(server, "server");
+
+ log.warn("This command is not yet implemented");
+ System.exit(0);
+ }
+
+ if (cmd.hasOption('r')) {
+ String licFilename = cmd.getOptionValue("sync");
+ checkMandatoryParameter(licFilename, "sync");
+ String server = cmd.getOptionValue("server");
+ checkMandatoryParameter(server, "server");
+
+ log.warn("This command is not yet implemented");
+ System.exit(0);
+ }
+
} catch (SeCurisException e) {
log.error("The command generated an error: {}", e.toString());
+ }
+ }
+
+ private static void checkMandatoryParameter(String value, String param) {
+ if (value == null) {
+ log.error("Parameter {} is mandatory. Use --help to get information about parameters", param);
+ System.exit(-5);
}
}
@@ -120,7 +178,7 @@
options.addOption("g", "gen_request", false, "Generate request file. If --rfile parameter is missing then It is generated in current directory.");
options.addOption("c", "create", false, "Request a license file from server. --rfile and --server parameters are mandatory.");
options.addOption("t", "test_lc", false, "Test if License Server (LC) is available. --server parameter is mandatory.");
- options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("sync").withDescription("Synchronize/renew the current license file. --server parameter is mandatory.").hasArg(true).create('y'));
+ options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("renew").withDescription("Synchronize/renew the current license file. --server parameter is mandatory.").hasArg(true).create('r'));
return options;
}
diff --git a/src/main/java/net/curisit/securis/LicenseManager.java b/src/main/java/net/curisit/securis/LicenseManager.java
index 7aa0ac3..d3e7f16 100644
--- a/src/main/java/net/curisit/securis/LicenseManager.java
+++ b/src/main/java/net/curisit/securis/LicenseManager.java
@@ -38,9 +38,7 @@
* </p>
*
* @param licFile
- * @param appCode
- * @param customerCode
- * @return
+ * @return The license bean stored in file
* @throws SeCurisException
*/
public LicenseBean validateLicense(File licFile) throws SeCurisException {
@@ -58,7 +56,7 @@
}
/**
- * Creates a new request file with current hardware in the File passed as paramter
+ * Creates a new request file with current hardware in the File passed as parameter
*
* @param outputRequestFile
* File where the request data will be saved
@@ -83,6 +81,8 @@
*/
public LicenseBean sync(File licenseFile) throws SeCurisException {
LicenseBean lic = validateLicense(licenseFile);
+ if (true)
+ throw new SeCurisException("Action not implemented yet");
// TODO: Send the current LicenseBean to server to check if a new one is prepared.
return lic;
}
diff --git a/src/main/java/net/curisit/securis/ReqGenerator.java b/src/main/java/net/curisit/securis/ReqGenerator.java
index 09545fd..3aecc16 100644
--- a/src/main/java/net/curisit/securis/ReqGenerator.java
+++ b/src/main/java/net/curisit/securis/ReqGenerator.java
@@ -71,7 +71,7 @@
byte[] json;
try {
json = JsonUtils.toJSON(req, true).getBytes("utf-8");
- Files.write(Paths.get(file.toURI()), json, StandardOpenOption.CREATE);
+ Files.write(Paths.get(file.toURI()), json, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
} catch (UnsupportedEncodingException e) {
log.error("Error creating json doc from request: " + req, e);
throw new SeCurisException("Error creating json doc from request: " + req, e);
@@ -80,13 +80,15 @@
throw new SeCurisException("Error creating request file: " + file, e);
}
- log.info("License saved in {}", file);
+ log.debug("License saved in {}", file);
}
private String getCrcLogo() {
String logResource = "images/logo_customer.png";
InputStream is = getClass().getClassLoader().getResourceAsStream(logResource);
+ if (is == null)
+ return null;
try {
String shaLogo = LicUtils.sha256(IOUtils.toByteArray(is), LOGO_SECRET);
return shaLogo;
diff --git a/src/main/java/net/curisit/securis/SignatureHelper.java b/src/main/java/net/curisit/securis/SignatureHelper.java
index bdd968f..ced9b47 100644
--- a/src/main/java/net/curisit/securis/SignatureHelper.java
+++ b/src/main/java/net/curisit/securis/SignatureHelper.java
@@ -14,13 +14,8 @@
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
import net.curisit.securis.beans.LicenseBean;
-import net.curisit.securis.beans.RequestBean;
-import net.curisit.securis.beans.SignedLicenseBean;
import net.curisit.securis.utils.JsonUtils;
import net.curisit.securis.utils.Params;
@@ -124,24 +119,6 @@
KeyPair kp = new KeyPair(publicKey, privateKey);
return kp;
- }
-
- public static void main(String[] args) throws SeCurisException {
- // org.apache.log4j.Logger.getRootLogger().addAppender(new Appender);
- // DOMConfigurator.configure("/Users/cproberto/Documents/wsCurisIT/SeCurisClient/src/main/resources/log4j.xml");
- RequestBean req = ReqGenerator.getInstance().createRequest("CI", "Roberto");
-
- LicenseGenerator lg = LicenseGenerator.getInstance();
- Map<String, Object> metadata = new HashMap<>();
- metadata.put("maxUsers", 14);
- metadata.put("timeThreshold", 5000);
- metadata.put("123", 5000);
- metadata.put("Basdads", 5000);
- metadata.put("aasdads", 5000);
- metadata.put("maxInstances", 50);
- LicenseBean lic = lg.generateLicense(req, metadata, new Date(new Date().getTime() + 24 * 3600 * 1000 * 10), "L01", "LIC-TEST-001");
- System.out.println(JsonUtils.toJSON(lic, true));
- System.out.println(JsonUtils.toJSON(new SignedLicenseBean(lic), true));
}
static {
diff --git a/src/main/java/net/curisit/securis/beans/RequestBean.java b/src/main/java/net/curisit/securis/beans/RequestBean.java
index cfb20f0..b3a3a1b 100644
--- a/src/main/java/net/curisit/securis/beans/RequestBean.java
+++ b/src/main/java/net/curisit/securis/beans/RequestBean.java
@@ -2,9 +2,9 @@
import java.util.List;
-import org.codehaus.jackson.annotate.JsonAutoDetect;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
-@JsonAutoDetect
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class RequestBean {
private String customerCode;
private String crcLogo;
diff --git a/src/main/java/net/curisit/securis/utils/Params.java b/src/main/java/net/curisit/securis/utils/Params.java
index 5349a79..2822010 100644
--- a/src/main/java/net/curisit/securis/utils/Params.java
+++ b/src/main/java/net/curisit/securis/utils/Params.java
@@ -44,7 +44,7 @@
*/
public static void loadParameters(String resource) throws IOException {
- log.info("Loading params from " + resource);
+ log.debug("Loading params from " + resource);
InputStream fileis = Params.class.getResourceAsStream(resource);
params = new Properties();
diff --git a/src/main/resources/images/logo_customer.png b/src/main/resources/images/logo_customer2.png
similarity index 100%
rename from src/main/resources/images/logo_customer.png
rename to src/main/resources/images/logo_customer2.png
Binary files differ
diff --git a/src/main/resources/securis-client.properties b/src/main/resources/securis-client.properties
index 2212669..e7aee1a 100644
--- a/src/main/resources/securis-client.properties
+++ b/src/main/resources/securis-client.properties
@@ -1,3 +1,3 @@
-public.key.file = /Users/cproberto/Documents/wsPython/doky/tests/mykey.pub
-app.code = CurisIntegrity
-customer.code = ROB
\ No newline at end of file
+public.key.file = __ADD_PUBLIC_KEY_FILE__
+app.code = __ADD_APP_CODE__
+customer.code = __ADD_APP_CODE__
diff --git a/src/patch/java/net/curisit/securis/LicenseGenerator.java b/src/patch/java/net/curisit/securis/LicenseGenerator.java
index 72da188..f84f980 100644
--- a/src/patch/java/net/curisit/securis/LicenseGenerator.java
+++ b/src/patch/java/net/curisit/securis/LicenseGenerator.java
@@ -80,7 +80,7 @@
byte[] json;
try {
json = JsonUtils.toJSON(signedLic, true).getBytes("utf-8");
- Files.write(Paths.get(file.toURI()), json, StandardOpenOption.CREATE);
+ 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);
--
Gitblit v1.3.2