From 3de8fa2128c740e131676683dec649bb44c8ea73 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Mon, 24 Feb 2014 13:22:01 +0000
Subject: [PATCH] #593 feature - Changed log lib to log4j2 and bugfixing
---
src/main/java/net/curisit/securis/utils/LicUtils.java | 6 +-
src/main/java/net/curisit/securis/HWInfo.java | 6 +-
src/main/resources/securis-client.properties | 4 +
pom.xml | 5 -
src/main/resources/log4j2.xml | 16 +++++
src/main/java/net/curisit/securis/License.java | 35 +++++++++--
src/main/java/net/curisit/securis/beans/LicenseBean.java | 2
/dev/null | 26 --------
src/main/java/net/curisit/securis/utils/Params.java | 8 +-
src/main/java/net/curisit/securis/CryptoHelper.java | 6 +-
src/main/java/net/curisit/securis/utils/JsonUtils.java | 6 +-
src/main/java/net/curisit/securis/SignatureHelper.java | 11 +--
src/main/java/net/curisit/securis/ReqGenerator.java | 18 ++++-
src/patch/java/net/curisit/securis/LicenseGenerator.java | 25 ++++++--
14 files changed, 103 insertions(+), 71 deletions(-)
diff --git a/pom.xml b/pom.xml
index 2ee657e..1ce4609 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,11 +43,6 @@
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-slf4j-impl</artifactId>
- <version>2.0-rc1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-rc1</version>
</dependency>
diff --git a/src/main/java/net/curisit/securis/CryptoHelper.java b/src/main/java/net/curisit/securis/CryptoHelper.java
index dd55a09..8ba7532 100644
--- a/src/main/java/net/curisit/securis/CryptoHelper.java
+++ b/src/main/java/net/curisit/securis/CryptoHelper.java
@@ -18,14 +18,14 @@
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.net.util.Base64;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
//import net.curisit.common.ui.Dialogs;
public class CryptoHelper {
- private static final Logger log = LoggerFactory.getLogger(SignatureHelper.class);
+ private static final Logger log = LogManager.getLogger(SignatureHelper.class);
private static final String KEY_FACTORY = "PBEWITHHMACSHA1";
private static final String PPROVIDER = "BC";
diff --git a/src/main/java/net/curisit/securis/HWInfo.java b/src/main/java/net/curisit/securis/HWInfo.java
index a0f9e65..053d260 100644
--- a/src/main/java/net/curisit/securis/HWInfo.java
+++ b/src/main/java/net/curisit/securis/HWInfo.java
@@ -8,8 +8,8 @@
import java.util.Collections;
import java.util.List;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* Retrieve HW info
@@ -19,7 +19,7 @@
*/
public class HWInfo {
- private static final Logger log = LoggerFactory.getLogger(HWInfo.class);
+ private static final Logger log = LogManager.getLogger(HWInfo.class);
public static String getOsName() {
return System.getProperty("os.name");
diff --git a/src/main/java/net/curisit/securis/License.java b/src/main/java/net/curisit/securis/License.java
index 87fd7b7..dd634bb 100644
--- a/src/main/java/net/curisit/securis/License.java
+++ b/src/main/java/net/curisit/securis/License.java
@@ -1,6 +1,8 @@
package net.curisit.securis;
import java.io.File;
+import java.net.URISyntaxException;
+import java.util.Date;
import net.curisit.securis.utils.Params;
@@ -11,8 +13,8 @@
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
public class License {
@@ -22,10 +24,14 @@
// LogManager.getRootLogger().
}
- private static final Logger log = LoggerFactory.getLogger(License.class);
+ // private static final Logger log = LoggerFactory.getLogger(License.class);
+ private static final Logger log = LogManager.getLogger(License.class);
- public static void main(String[] args) {
- log.info("Tool init");
+ 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());
+
checkConfigFile();
CommandLine cmd = getCommandLine(args);
@@ -34,7 +40,24 @@
String filename = cmd.getOptionValue("rfile");
if (filename == null)
filename = "./license.req";
- LicenseManager.getInstance().createRequestFile(new File(filename));
+ File file = new File(filename);
+ LicenseManager.getInstance().createRequestFile(file);
+ log.info("Request file {} generated OK", file.getAbsolutePath());
+ System.exit(0);
+ }
+
+ if (cmd.hasOption('l')) {
+ String filename = cmd.getOptionValue("validate");
+ if (filename == null)
+ filename = "./license.lic";
+ File file = new File(filename);
+ try {
+ LicenseManager.getInstance().validateLicense(file);
+ log.info("License file {} is valid", file.getAbsolutePath());
+ } catch (SeCurisException e) {
+ log.info("License file {} is NOT valid", file.getAbsolutePath());
+ }
+
System.exit(0);
}
diff --git a/src/main/java/net/curisit/securis/ReqGenerator.java b/src/main/java/net/curisit/securis/ReqGenerator.java
index a329031..09545fd 100644
--- a/src/main/java/net/curisit/securis/ReqGenerator.java
+++ b/src/main/java/net/curisit/securis/ReqGenerator.java
@@ -13,13 +13,12 @@
import net.curisit.securis.utils.LicUtils;
import org.apache.commons.io.IOUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
public class ReqGenerator {
- @SuppressWarnings("unused")
- private static final Logger log = LoggerFactory.getLogger(ReqGenerator.class);
+ private static final Logger log = LogManager.getLogger(ReqGenerator.class);
private static ReqGenerator singleton = new ReqGenerator();
@@ -50,6 +49,17 @@
return req;
}
+ public RequestBean loadRequest(File requestFile) throws SeCurisException {
+ try {
+ String json = new String(Files.readAllBytes(Paths.get(requestFile.toURI())), "utf-8");
+ RequestBean req = JsonUtils.json2object(json, RequestBean.class);
+ return req;
+ } catch (IOException e) {
+ log.error("Request file {} was not found or is not accesible");
+ throw new SeCurisException("ERROR accesing request file: " + requestFile.getAbsolutePath(), e);
+ }
+ }
+
/**
* Generate a request file using a {@link RequestBean}
*
diff --git a/src/main/java/net/curisit/securis/SignatureHelper.java b/src/main/java/net/curisit/securis/SignatureHelper.java
index e25f28e..bdd968f 100644
--- a/src/main/java/net/curisit/securis/SignatureHelper.java
+++ b/src/main/java/net/curisit/securis/SignatureHelper.java
@@ -26,10 +26,8 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.net.util.Base64;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-//import net.curisit.common.ui.Dialogs;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* digital Signature utilities
@@ -38,7 +36,7 @@
*/
public class SignatureHelper {
- private static final Logger log = LoggerFactory.getLogger(SignatureHelper.class);
+ private static final Logger log = LogManager.getLogger(SignatureHelper.class);
private static String AUX = "hEDhryRjs2QRE";
private static SignatureHelper singleton = new SignatureHelper();
@@ -58,6 +56,7 @@
log.info("JSON: {}", JsonUtils.toJSON(licBean));
signature.update(JsonUtils.toJSON(licBean).getBytes("utf-8"));
signature.update(AUX.getBytes("utf-8"));
+
} catch (SignatureException | UnsupportedEncodingException e) {
throw new SeCurisException("Error generating or validating signature", e);
}
@@ -140,7 +139,7 @@
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), "LIC-TEST-001");
+ 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));
}
diff --git a/src/main/java/net/curisit/securis/beans/LicenseBean.java b/src/main/java/net/curisit/securis/beans/LicenseBean.java
index e009277..6986590 100644
--- a/src/main/java/net/curisit/securis/beans/LicenseBean.java
+++ b/src/main/java/net/curisit/securis/beans/LicenseBean.java
@@ -5,6 +5,7 @@
import java.util.TreeMap;
import org.codehaus.jackson.annotate.JsonIgnore;
+import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.annotate.JsonPropertyOrder;
@JsonPropertyOrder(
@@ -45,6 +46,7 @@
return signature;
}
+ @JsonProperty("signature")
public void setSignature(String signature) {
this.signature = signature;
}
diff --git a/src/main/java/net/curisit/securis/utils/JsonUtils.java b/src/main/java/net/curisit/securis/utils/JsonUtils.java
index 397a0e0..15f6216 100644
--- a/src/main/java/net/curisit/securis/utils/JsonUtils.java
+++ b/src/main/java/net/curisit/securis/utils/JsonUtils.java
@@ -6,14 +6,14 @@
import net.curisit.securis.SeCurisException;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import org.codehaus.jackson.type.TypeReference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Helper method to perform JSON tasks
@@ -22,7 +22,7 @@
*/
public class JsonUtils {
- private static final Logger log = LoggerFactory.getLogger(JsonUtils.class);
+ private static final Logger log = LogManager.getLogger(JsonUtils.class);
final private static ObjectMapper MAPPER = new ObjectMapper();
diff --git a/src/main/java/net/curisit/securis/utils/LicUtils.java b/src/main/java/net/curisit/securis/utils/LicUtils.java
index bb5a3e3..c3e19cd 100644
--- a/src/main/java/net/curisit/securis/utils/LicUtils.java
+++ b/src/main/java/net/curisit/securis/utils/LicUtils.java
@@ -4,12 +4,12 @@
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
public class LicUtils {
- private static final Logger log = LoggerFactory.getLogger(LicUtils.class);
+ private static final Logger log = LogManager.getLogger(LicUtils.class);
public static String md5(String str) {
try {
diff --git a/src/main/java/net/curisit/securis/utils/Params.java b/src/main/java/net/curisit/securis/utils/Params.java
index b6479ee..5349a79 100644
--- a/src/main/java/net/curisit/securis/utils/Params.java
+++ b/src/main/java/net/curisit/securis/utils/Params.java
@@ -7,8 +7,8 @@
import java.util.List;
import java.util.Properties;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* Class that loads and serves global config parameters.
@@ -17,7 +17,7 @@
*/
public class Params {
- private static Logger log = LoggerFactory.getLogger(Params.class);
+ private static Logger log = LogManager.getLogger(Params.class);
/**
* Key used to store config file resource location. In a web application, can be set as initial parameter in a servlet loaded on startup
@@ -51,7 +51,7 @@
try {
params.load(fileis);
- log.info("Params loaded OK");
+ log.debug("Params loaded OK from {}", resource);
} catch (IOException e) {
log.error("Error loading config file: " + e);
params = null;
diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml
deleted file mode 100644
index 6298f36..0000000
--- a/src/main/resources/log4j.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-
- <appender name="console" class="org.apache.log4j.ConsoleAppender">
- <param name="Target" value="System.out"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
- </layout>
- </appender>
-
- <logger name="net.curisit">
- <level value="INFO"/>
- </logger>
-
- <logger name="sandbox">
- <level value="DEBUG"/>
- </logger>
-
- <root>
- <priority value ="INFO" />
- <appender-ref ref="console" />
- </root>
-
-</log4j:configuration>
\ No newline at end of file
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..74f7466
--- /dev/null
+++ b/src/main/resources/log4j2.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration>
+ <Appenders>
+ <Console name="STDOUT" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
+ </Console>
+ </Appenders>
+ <Loggers>
+
+ <Logger name="net.curisit" level="info"/>
+
+ <Root level="debug">
+ <AppenderRef ref="STDOUT"/>
+ </Root>
+ </Loggers>
+</Configuration>
diff --git a/src/main/resources/securis-client.properties b/src/main/resources/securis-client.properties
index a6a2ed3..2212669 100644
--- a/src/main/resources/securis-client.properties
+++ b/src/main/resources/securis-client.properties
@@ -1 +1,3 @@
-public.key.file = /Users/cproberto/Documents/wsPython/doky/tests/mykey.pub
\ No newline at end of file
+public.key.file = /Users/cproberto/Documents/wsPython/doky/tests/mykey.pub
+app.code = CurisIntegrity
+customer.code = ROB
\ No newline at end of file
diff --git a/src/patch/java/net/curisit/securis/LicenseGenerator.java b/src/patch/java/net/curisit/securis/LicenseGenerator.java
index cd696ff..72da188 100644
--- a/src/patch/java/net/curisit/securis/LicenseGenerator.java
+++ b/src/patch/java/net/curisit/securis/LicenseGenerator.java
@@ -8,21 +8,22 @@
import java.nio.file.StandardOpenOption;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
import java.security.Signature;
import java.security.SignatureException;
import java.security.spec.InvalidKeySpecException;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Map;
+import java.util.TreeMap;
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 org.apache.commons.net.util.Base64;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* License generator and signer
@@ -31,7 +32,7 @@
*/
public class LicenseGenerator {
- private static final Logger log = LoggerFactory.getLogger(LicenseGenerator.class);
+ private static final Logger log = LogManager.getLogger(LicenseGenerator.class);
private static LicenseGenerator singleton = new LicenseGenerator();
@@ -55,9 +56,10 @@
* @return
* @throws SeCurisException
*/
- public LicenseBean generateLicense(RequestBean req, Map<String, Object> metadata, Date expirationDate, String licenseCode) throws SeCurisException {
+ public LicenseBean generateLicense(RequestBean req, Map<String, Object> metadata, Date expirationDate, String licenseType, String licenseCode) throws SeCurisException {
log.info(MessageFormat.format("Generating license: MAC: {0}, Customer code: {1}, AppCode: {2}", req.getMacAddresses(), req.getCustomerCode(), req.getAppCode()));
LicenseBean license = new LicenseBean(req);
+ license.setLicenseType(licenseType);
license.setLicenseCode(licenseCode);
license.setExpirationDate(expirationDate);
license.setMetadata(metadata);
@@ -74,9 +76,10 @@
* @throws SeCurisException
*/
public void save(LicenseBean license, File file) throws SeCurisException {
+ SignedLicenseBean signedLic = new SignedLicenseBean(license);
byte[] json;
try {
- json = JsonUtils.toJSON(license, true).getBytes("utf-8");
+ json = JsonUtils.toJSON(signedLic, true).getBytes("utf-8");
Files.write(Paths.get(file.toURI()), json, StandardOpenOption.CREATE);
} catch (UnsupportedEncodingException e) {
log.error("Error creating json doc from license: " + license, e);
@@ -128,7 +131,15 @@
throw new SeCurisException("License could not be generated");
}
- public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchProviderException, InvalidKeyException, SignatureException {
+ 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"));
+ 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"));
System.out.print("os.arch: " + System.getProperty("os.arch") + " " + System.getProperty("os.name"));
--
Gitblit v1.3.2