Roberto Sánchez
2014-02-24 3de8fa2128c740e131676683dec649bb44c8ea73
#593 feature - Changed log lib to log4j2 and bugfixing
1 files deleted
1 files added
12 files modified
changed files
pom.xml patch | view | blame | history
src/main/java/net/curisit/securis/CryptoHelper.java patch | view | blame | history
src/main/java/net/curisit/securis/HWInfo.java patch | view | blame | history
src/main/java/net/curisit/securis/License.java patch | view | blame | history
src/main/java/net/curisit/securis/ReqGenerator.java patch | view | blame | history
src/main/java/net/curisit/securis/SignatureHelper.java patch | view | blame | history
src/main/java/net/curisit/securis/beans/LicenseBean.java patch | view | blame | history
src/main/java/net/curisit/securis/utils/JsonUtils.java patch | view | blame | history
src/main/java/net/curisit/securis/utils/LicUtils.java patch | view | blame | history
src/main/java/net/curisit/securis/utils/Params.java patch | view | blame | history
src/main/resources/log4j.xml patch | view | blame | history
src/main/resources/log4j2.xml patch | view | blame | history
src/main/resources/securis-client.properties patch | view | blame | history
src/patch/java/net/curisit/securis/LicenseGenerator.java patch | view | blame | history
pom.xml
....@@ -43,11 +43,6 @@
4343 </dependency>
4444 <dependency>
4545 <groupId>org.apache.logging.log4j</groupId>
46
- <artifactId>log4j-slf4j-impl</artifactId>
47
- <version>2.0-rc1</version>
48
- </dependency>
49
- <dependency>
50
- <groupId>org.apache.logging.log4j</groupId>
5146 <artifactId>log4j-core</artifactId>
5247 <version>2.0-rc1</version>
5348 </dependency>
src/main/java/net/curisit/securis/CryptoHelper.java
....@@ -18,14 +18,14 @@
1818 import javax.crypto.spec.SecretKeySpec;
1919
2020 import org.apache.commons.net.util.Base64;
21
-import org.slf4j.Logger;
22
-import org.slf4j.LoggerFactory;
21
+import org.apache.logging.log4j.LogManager;
22
+import org.apache.logging.log4j.Logger;
2323
2424 //import net.curisit.common.ui.Dialogs;
2525
2626 public class CryptoHelper {
2727
28
- private static final Logger log = LoggerFactory.getLogger(SignatureHelper.class);
28
+ private static final Logger log = LogManager.getLogger(SignatureHelper.class);
2929
3030 private static final String KEY_FACTORY = "PBEWITHHMACSHA1";
3131 private static final String PPROVIDER = "BC";
src/main/java/net/curisit/securis/HWInfo.java
....@@ -8,8 +8,8 @@
88 import java.util.Collections;
99 import java.util.List;
1010
11
-import org.slf4j.Logger;
12
-import org.slf4j.LoggerFactory;
11
+import org.apache.logging.log4j.LogManager;
12
+import org.apache.logging.log4j.Logger;
1313
1414 /**
1515 * Retrieve HW info
....@@ -19,7 +19,7 @@
1919 */
2020 public class HWInfo {
2121
22
- private static final Logger log = LoggerFactory.getLogger(HWInfo.class);
22
+ private static final Logger log = LogManager.getLogger(HWInfo.class);
2323
2424 public static String getOsName() {
2525 return System.getProperty("os.name");
src/main/java/net/curisit/securis/License.java
....@@ -1,6 +1,8 @@
11 package net.curisit.securis;
22
33 import java.io.File;
4
+import java.net.URISyntaxException;
5
+import java.util.Date;
46
57 import net.curisit.securis.utils.Params;
68
....@@ -11,8 +13,8 @@
1113 import org.apache.commons.cli.Options;
1214 import org.apache.commons.cli.ParseException;
1315 import org.apache.commons.cli.PosixParser;
14
-import org.slf4j.Logger;
15
-import org.slf4j.LoggerFactory;
16
+import org.apache.logging.log4j.LogManager;
17
+import org.apache.logging.log4j.Logger;
1618
1719 public class License {
1820
....@@ -22,10 +24,14 @@
2224 // LogManager.getRootLogger().
2325 }
2426
25
- private static final Logger log = LoggerFactory.getLogger(License.class);
27
+ // private static final Logger log = LoggerFactory.getLogger(License.class);
28
+ private static final Logger log = LogManager.getLogger(License.class);
2629
27
- public static void main(String[] args) {
28
- log.info("Tool init");
30
+ public static void main(String[] args) throws URISyntaxException {
31
+ // Configuration conf = XMLConfigurationFactory.getInstance().getConfiguration("config", License.class.getResource("/log4j.xml").toURI());
32
+
33
+ log.info("Tool init {}", new Date());
34
+
2935 checkConfigFile();
3036 CommandLine cmd = getCommandLine(args);
3137
....@@ -34,7 +40,24 @@
3440 String filename = cmd.getOptionValue("rfile");
3541 if (filename == null)
3642 filename = "./license.req";
37
- LicenseManager.getInstance().createRequestFile(new File(filename));
43
+ File file = new File(filename);
44
+ LicenseManager.getInstance().createRequestFile(file);
45
+ log.info("Request file {} generated OK", file.getAbsolutePath());
46
+ System.exit(0);
47
+ }
48
+
49
+ if (cmd.hasOption('l')) {
50
+ String filename = cmd.getOptionValue("validate");
51
+ if (filename == null)
52
+ filename = "./license.lic";
53
+ File file = new File(filename);
54
+ try {
55
+ LicenseManager.getInstance().validateLicense(file);
56
+ log.info("License file {} is valid", file.getAbsolutePath());
57
+ } catch (SeCurisException e) {
58
+ log.info("License file {} is NOT valid", file.getAbsolutePath());
59
+ }
60
+
3861 System.exit(0);
3962 }
4063
src/main/java/net/curisit/securis/ReqGenerator.java
....@@ -13,13 +13,12 @@
1313 import net.curisit.securis.utils.LicUtils;
1414
1515 import org.apache.commons.io.IOUtils;
16
-import org.slf4j.Logger;
17
-import org.slf4j.LoggerFactory;
16
+import org.apache.logging.log4j.LogManager;
17
+import org.apache.logging.log4j.Logger;
1818
1919 public class ReqGenerator {
2020
21
- @SuppressWarnings("unused")
22
- private static final Logger log = LoggerFactory.getLogger(ReqGenerator.class);
21
+ private static final Logger log = LogManager.getLogger(ReqGenerator.class);
2322
2423 private static ReqGenerator singleton = new ReqGenerator();
2524
....@@ -50,6 +49,17 @@
5049 return req;
5150 }
5251
52
+ public RequestBean loadRequest(File requestFile) throws SeCurisException {
53
+ try {
54
+ String json = new String(Files.readAllBytes(Paths.get(requestFile.toURI())), "utf-8");
55
+ RequestBean req = JsonUtils.json2object(json, RequestBean.class);
56
+ return req;
57
+ } catch (IOException e) {
58
+ log.error("Request file {} was not found or is not accesible");
59
+ throw new SeCurisException("ERROR accesing request file: " + requestFile.getAbsolutePath(), e);
60
+ }
61
+ }
62
+
5363 /**
5464 * Generate a request file using a {@link RequestBean}
5565 *
src/main/java/net/curisit/securis/SignatureHelper.java
....@@ -26,10 +26,8 @@
2626
2727 import org.apache.commons.io.FileUtils;
2828 import org.apache.commons.net.util.Base64;
29
-import org.slf4j.Logger;
30
-import org.slf4j.LoggerFactory;
31
-
32
-//import net.curisit.common.ui.Dialogs;
29
+import org.apache.logging.log4j.LogManager;
30
+import org.apache.logging.log4j.Logger;
3331
3432 /**
3533 * digital Signature utilities
....@@ -38,7 +36,7 @@
3836 */
3937 public class SignatureHelper {
4038
41
- private static final Logger log = LoggerFactory.getLogger(SignatureHelper.class);
39
+ private static final Logger log = LogManager.getLogger(SignatureHelper.class);
4240 private static String AUX = "hEDhryRjs2QRE";
4341
4442 private static SignatureHelper singleton = new SignatureHelper();
....@@ -58,6 +56,7 @@
5856 log.info("JSON: {}", JsonUtils.toJSON(licBean));
5957 signature.update(JsonUtils.toJSON(licBean).getBytes("utf-8"));
6058 signature.update(AUX.getBytes("utf-8"));
59
+
6160 } catch (SignatureException | UnsupportedEncodingException e) {
6261 throw new SeCurisException("Error generating or validating signature", e);
6362 }
....@@ -140,7 +139,7 @@
140139 metadata.put("Basdads", 5000);
141140 metadata.put("aasdads", 5000);
142141 metadata.put("maxInstances", 50);
143
- LicenseBean lic = lg.generateLicense(req, metadata, new Date(new Date().getTime() + 24 * 3600 * 1000 * 10), "LIC-TEST-001");
142
+ LicenseBean lic = lg.generateLicense(req, metadata, new Date(new Date().getTime() + 24 * 3600 * 1000 * 10), "L01", "LIC-TEST-001");
144143 System.out.println(JsonUtils.toJSON(lic, true));
145144 System.out.println(JsonUtils.toJSON(new SignedLicenseBean(lic), true));
146145 }
src/main/java/net/curisit/securis/beans/LicenseBean.java
....@@ -5,6 +5,7 @@
55 import java.util.TreeMap;
66
77 import org.codehaus.jackson.annotate.JsonIgnore;
8
+import org.codehaus.jackson.annotate.JsonProperty;
89 import org.codehaus.jackson.annotate.JsonPropertyOrder;
910
1011 @JsonPropertyOrder(
....@@ -45,6 +46,7 @@
4546 return signature;
4647 }
4748
49
+ @JsonProperty("signature")
4850 public void setSignature(String signature) {
4951 this.signature = signature;
5052 }
src/main/java/net/curisit/securis/utils/JsonUtils.java
....@@ -6,14 +6,14 @@
66
77 import net.curisit.securis.SeCurisException;
88
9
+import org.apache.logging.log4j.LogManager;
10
+import org.apache.logging.log4j.Logger;
911 import org.codehaus.jackson.JsonParseException;
1012 import org.codehaus.jackson.JsonParser;
1113 import org.codehaus.jackson.JsonProcessingException;
1214 import org.codehaus.jackson.map.ObjectMapper;
1315 import org.codehaus.jackson.map.SerializationConfig;
1416 import org.codehaus.jackson.type.TypeReference;
15
-import org.slf4j.Logger;
16
-import org.slf4j.LoggerFactory;
1717
1818 /**
1919 * Helper method to perform JSON tasks
....@@ -22,7 +22,7 @@
2222 */
2323 public class JsonUtils {
2424
25
- private static final Logger log = LoggerFactory.getLogger(JsonUtils.class);
25
+ private static final Logger log = LogManager.getLogger(JsonUtils.class);
2626
2727 final private static ObjectMapper MAPPER = new ObjectMapper();
2828
src/main/java/net/curisit/securis/utils/LicUtils.java
....@@ -4,12 +4,12 @@
44 import java.security.MessageDigest;
55 import java.security.NoSuchAlgorithmException;
66
7
-import org.slf4j.Logger;
8
-import org.slf4j.LoggerFactory;
7
+import org.apache.logging.log4j.LogManager;
8
+import org.apache.logging.log4j.Logger;
99
1010 public class LicUtils {
1111
12
- private static final Logger log = LoggerFactory.getLogger(LicUtils.class);
12
+ private static final Logger log = LogManager.getLogger(LicUtils.class);
1313
1414 public static String md5(String str) {
1515 try {
src/main/java/net/curisit/securis/utils/Params.java
....@@ -7,8 +7,8 @@
77 import java.util.List;
88 import java.util.Properties;
99
10
-import org.slf4j.Logger;
11
-import org.slf4j.LoggerFactory;
10
+import org.apache.logging.log4j.LogManager;
11
+import org.apache.logging.log4j.Logger;
1212
1313 /**
1414 * Class that loads and serves global config parameters.
....@@ -17,7 +17,7 @@
1717 */
1818 public class Params {
1919
20
- private static Logger log = LoggerFactory.getLogger(Params.class);
20
+ private static Logger log = LogManager.getLogger(Params.class);
2121
2222 /**
2323 * 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 @@
5151 try {
5252
5353 params.load(fileis);
54
- log.info("Params loaded OK");
54
+ log.debug("Params loaded OK from {}", resource);
5555 } catch (IOException e) {
5656 log.error("Error loading config file: " + e);
5757 params = null;
src/main/resources/log4j.xml
deleted file mode 100644
....@@ -1,26 +0,0 @@
1
-<?xml version="1.0" encoding="UTF-8" ?>
2
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3
-
4
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
5
-
6
- <appender name="console" class="org.apache.log4j.ConsoleAppender">
7
- <param name="Target" value="System.out"/>
8
- <layout class="org.apache.log4j.PatternLayout">
9
- <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
10
- </layout>
11
- </appender>
12
-
13
- <logger name="net.curisit">
14
- <level value="INFO"/>
15
- </logger>
16
-
17
- <logger name="sandbox">
18
- <level value="DEBUG"/>
19
- </logger>
20
-
21
- <root>
22
- <priority value ="INFO" />
23
- <appender-ref ref="console" />
24
- </root>
25
-
26
-</log4j:configuration>
src/main/resources/log4j2.xml
....@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Configuration>
3
+ <Appenders>
4
+ <Console name="STDOUT" target="SYSTEM_OUT">
5
+ <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
6
+ </Console>
7
+ </Appenders>
8
+ <Loggers>
9
+
10
+ <Logger name="net.curisit" level="info"/>
11
+
12
+ <Root level="debug">
13
+ <AppenderRef ref="STDOUT"/>
14
+ </Root>
15
+ </Loggers>
16
+</Configuration>
src/main/resources/securis-client.properties
....@@ -1 +1,3 @@
1
-public.key.file = /Users/cproberto/Documents/wsPython/doky/tests/mykey.pub
1
+public.key.file = /Users/cproberto/Documents/wsPython/doky/tests/mykey.pub
2
+app.code = CurisIntegrity
3
+customer.code = ROB
src/patch/java/net/curisit/securis/LicenseGenerator.java
....@@ -8,21 +8,22 @@
88 import java.nio.file.StandardOpenOption;
99 import java.security.InvalidKeyException;
1010 import java.security.NoSuchAlgorithmException;
11
-import java.security.NoSuchProviderException;
1211 import java.security.Signature;
1312 import java.security.SignatureException;
1413 import java.security.spec.InvalidKeySpecException;
1514 import java.text.MessageFormat;
1615 import java.util.Date;
1716 import java.util.Map;
17
+import java.util.TreeMap;
1818
1919 import net.curisit.securis.beans.LicenseBean;
2020 import net.curisit.securis.beans.RequestBean;
21
+import net.curisit.securis.beans.SignedLicenseBean;
2122 import net.curisit.securis.utils.JsonUtils;
2223
2324 import org.apache.commons.net.util.Base64;
24
-import org.slf4j.Logger;
25
-import org.slf4j.LoggerFactory;
25
+import org.apache.logging.log4j.LogManager;
26
+import org.apache.logging.log4j.Logger;
2627
2728 /**
2829 * License generator and signer
....@@ -31,7 +32,7 @@
3132 */
3233 public class LicenseGenerator {
3334
34
- private static final Logger log = LoggerFactory.getLogger(LicenseGenerator.class);
35
+ private static final Logger log = LogManager.getLogger(LicenseGenerator.class);
3536
3637 private static LicenseGenerator singleton = new LicenseGenerator();
3738
....@@ -55,9 +56,10 @@
5556 * @return
5657 * @throws SeCurisException
5758 */
58
- public LicenseBean generateLicense(RequestBean req, Map<String, Object> metadata, Date expirationDate, String licenseCode) throws SeCurisException {
59
+ public LicenseBean generateLicense(RequestBean req, Map<String, Object> metadata, Date expirationDate, String licenseType, String licenseCode) throws SeCurisException {
5960 log.info(MessageFormat.format("Generating license: MAC: {0}, Customer code: {1}, AppCode: {2}", req.getMacAddresses(), req.getCustomerCode(), req.getAppCode()));
6061 LicenseBean license = new LicenseBean(req);
62
+ license.setLicenseType(licenseType);
6163 license.setLicenseCode(licenseCode);
6264 license.setExpirationDate(expirationDate);
6365 license.setMetadata(metadata);
....@@ -74,9 +76,10 @@
7476 * @throws SeCurisException
7577 */
7678 public void save(LicenseBean license, File file) throws SeCurisException {
79
+ SignedLicenseBean signedLic = new SignedLicenseBean(license);
7780 byte[] json;
7881 try {
79
- json = JsonUtils.toJSON(license, true).getBytes("utf-8");
82
+ json = JsonUtils.toJSON(signedLic, true).getBytes("utf-8");
8083 Files.write(Paths.get(file.toURI()), json, StandardOpenOption.CREATE);
8184 } catch (UnsupportedEncodingException e) {
8285 log.error("Error creating json doc from license: " + license, e);
....@@ -128,7 +131,15 @@
128131 throw new SeCurisException("License could not be generated");
129132 }
130133
131
- public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchProviderException, InvalidKeyException, SignatureException {
134
+ public static void main(String[] args) throws SeCurisException {
135
+ Paths.get(new File("/Users/cproberto/Documents/wsCurisIT/SeCurisClient/license.req").toURI());
136
+
137
+ RequestBean req = ReqGenerator.getInstance().loadRequest(new File("/Users/cproberto/Documents/wsCurisIT/SeCurisClient/license.req"));
138
+ Map<String, Object> metadata = new TreeMap<>();
139
+ metadata.put("maxUsers", 23);
140
+ metadata.put("maxInstances", 12);
141
+ LicenseBean lic = LicenseGenerator.getInstance().generateLicense(req, metadata, new Date(new Date().getTime() + 3600 * 1000), "L01", "LIC-9812987123-12837129873");
142
+ LicenseGenerator.getInstance().save(lic, new File("/Users/cproberto/Documents/wsCurisIT/SeCurisClient/license.lic"));
132143
133144 System.out.print("os.arch: " + System.getProperty("os.arch") + " " + System.getProperty("os.name"));
134145