Roberto Sánchez
2014-02-24 3de8fa2128c740e131676683dec649bb44c8ea73
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