rsanchez
2016-06-29 a99c9ec291c889667a61240c46005ffa2164e40e
src/main/java/net/curisit/securis/License.java
....@@ -3,9 +3,6 @@
33 import java.io.File;
44 import java.net.URISyntaxException;
55
6
-import net.curisit.securis.beans.SignedLicenseBean;
7
-import net.curisit.securis.utils.Params;
8
-
96 import org.apache.commons.cli.CommandLine;
107 import org.apache.commons.cli.CommandLineParser;
118 import org.apache.commons.cli.HelpFormatter;
....@@ -15,6 +12,9 @@
1512 import org.apache.commons.cli.PosixParser;
1613 import org.apache.logging.log4j.LogManager;
1714 import org.apache.logging.log4j.Logger;
15
+
16
+import net.curisit.securis.beans.SignedLicenseBean;
17
+import net.curisit.securis.utils.Params;
1818
1919 /**
2020 * Main class when SeCuris client is used from command line.
....@@ -41,166 +41,177 @@
4141 */
4242 public class License {
4343
44
- private static final Logger LOG = LogManager.getLogger(License.class);
44
+ private static final Logger LOG = LogManager.getLogger(License.class);
4545
46
- /**
47
- * Aplication entry point when it used as CLI
48
- *
49
- * @param args
50
- * @throws URISyntaxException
51
- */
52
- public static void main(String[] args) throws URISyntaxException {
46
+ /**
47
+ * Aplication entry point when it used as CLI
48
+ *
49
+ * @param args
50
+ * @throws URISyntaxException
51
+ */
52
+ public static void main(String[] args) throws URISyntaxException {
5353
54
- LOG.debug("SeCuris client tool init ");
54
+ LOG.debug("SeCuris client tool init ");
5555
56
- checkConfigFile();
57
- CommandLine cmd = getCommandLine(args);
56
+ checkConfigFile();
57
+ CommandLine cmd = getCommandLine(args);
5858
59
- try {
60
- if (cmd.hasOption('g')) {
61
- String filename = cmd.getOptionValue("rfile");
62
- if (filename == null)
63
- filename = "./license.req";
64
- File file = new File(filename);
65
- LicenseManager.getInstance().createRequestFile(file);
66
- LOG.info("Request file {} generated OK", file.getAbsolutePath());
67
- System.exit(0);
68
- }
59
+ try {
60
+ if (cmd.hasOption('g')) {
61
+ String filename = cmd.getOptionValue("rfile");
62
+ if (filename == null)
63
+ filename = "./license.req";
64
+ File file = new File(filename);
65
+ String activationCode = cmd.getOptionValue("ac");
66
+ if (activationCode != null) {
67
+ String appcode = cmd.getOptionValue("appcode");
68
+ if (appcode == null) {
69
+ appcode = Params.get(Params.KEYS.APPLICATION_CODE);
70
+ if (appcode == null || appcode.startsWith("_")) {
71
+ checkMandatoryParameter(null, "appcode");
72
+ }
73
+ }
74
+ LicenseManager.getInstance().createRequestFile(file, activationCode, appcode);
75
+ } else {
76
+ LicenseManager.getInstance().createRequestFile(file);
77
+ }
78
+ LOG.info("Request file {} generated OK", file.getAbsolutePath());
79
+ System.exit(0);
80
+ }
6981
70
- if (cmd.hasOption('l')) {
71
- String filename = cmd.getOptionValue("validate");
72
- if (filename == null)
73
- filename = "./license.lic";
74
- File file = new File(filename);
75
- if (!file.exists()) {
76
- throw new SeCurisException("The license file doesn't exist: " + file.getAbsolutePath());
77
- }
78
- try {
79
- LicenseManager.getInstance().validateLicense(file);
80
- LOG.info("License file {} is valid", file.getAbsolutePath());
81
- } catch (SeCurisException e) {
82
- LOG.info("License file {} is NOT valid", file.getAbsolutePath());
83
- LOG.info("Reason: {}", e.toString());
84
- }
82
+ if (cmd.hasOption('l')) {
83
+ String filename = cmd.getOptionValue("validate");
84
+ if (filename == null)
85
+ filename = "./license.lic";
86
+ File file = new File(filename);
87
+ if (!file.exists()) {
88
+ throw new SeCurisException("The license file doesn't exist: " + file.getAbsolutePath());
89
+ }
90
+ try {
91
+ LicenseManager.getInstance().validateLicense(file);
92
+ LOG.info("License file {} is valid", file.getAbsolutePath());
93
+ } catch (SeCurisException e) {
94
+ LOG.info("License file {} is NOT valid", file.getAbsolutePath());
95
+ LOG.info("Reason: {}", e.toString());
96
+ }
8597
86
- System.exit(0);
87
- }
98
+ System.exit(0);
99
+ }
88100
89
- if (cmd.hasOption('c')) {
90
- // TODO: Change CLI to get name and email in license request
91
- SignedLicenseBean lic = LicenseManager.getInstance().requestLicense(null, null);
92
- String filename = cmd.getOptionValue("c");
93
- if (filename == null) {
94
- filename = "./license.lic";
95
- }
96
- File file = new File(filename);
97
- LicenseManager.getInstance().save(lic, file);
98
- LOG.info("License file sucessfully saved in file: {}", file.getAbsolutePath());
99
- System.exit(0);
100
- }
101
+ if (cmd.hasOption('c')) {
102
+ // TODO: Change CLI to get name and email in license request
103
+ SignedLicenseBean lic = LicenseManager.getInstance().requestLicense(null, null);
104
+ String filename = cmd.getOptionValue("c");
105
+ if (filename == null) {
106
+ filename = "./license.lic";
107
+ }
108
+ File file = new File(filename);
109
+ LicenseManager.getInstance().save(lic, file);
110
+ LOG.info("License file sucessfully saved in file: {}", file.getAbsolutePath());
111
+ System.exit(0);
112
+ }
101113
102
- if (cmd.hasOption('t')) {
103
- LicenseManager.getInstance().testServer();
104
- LOG.info("Server is OK, url: {}", Params.get(Params.KEYS.LICENSE_SERVER_URL, Params.DEFAUT_SERVER_URL));
114
+ if (cmd.hasOption('t')) {
115
+ LicenseManager.getInstance().testServer();
116
+ LOG.info("Server is OK, url: {}", Params.get(Params.KEYS.LICENSE_SERVER_URL, Params.DEFAUT_SERVER_URL));
105117
106
- System.exit(0);
107
- }
118
+ System.exit(0);
119
+ }
108120
109
- if (cmd.hasOption('r')) {
110
- String licFilename = cmd.getOptionValue("renew");
111
- checkMandatoryParameter(licFilename, "renew");
112
- File file = new File(licFilename);
113
- if (!file.exists()) {
114
- throw new SeCurisException("The license file doesn't exist: " + file.getAbsolutePath());
115
- }
116
- SignedLicenseBean newLic = LicenseManager.getInstance().renew(file);
117
- File oldLicFile = new File(file.getAbsoluteFile() + ".old");
118
- file.renameTo(oldLicFile);
119
- LOG.info("Old license file has been renamed to: {}", oldLicFile.getAbsolutePath());
120
- LicenseManager.getInstance().save(newLic, file);
121
- LOG.info("New license file saved as: {}", file.getAbsolutePath());
122
- System.exit(0);
123
- }
121
+ if (cmd.hasOption('r')) {
122
+ String licFilename = cmd.getOptionValue("renew");
123
+ checkMandatoryParameter(licFilename, "renew");
124
+ File file = new File(licFilename);
125
+ if (!file.exists()) {
126
+ throw new SeCurisException("The license file doesn't exist: " + file.getAbsolutePath());
127
+ }
128
+ SignedLicenseBean newLic = LicenseManager.getInstance().renew(file);
129
+ File oldLicFile = new File(file.getAbsoluteFile() + ".old");
130
+ file.renameTo(oldLicFile);
131
+ LOG.info("Old license file has been renamed to: {}", oldLicFile.getAbsolutePath());
132
+ LicenseManager.getInstance().save(newLic, file);
133
+ LOG.info("New license file saved as: {}", file.getAbsolutePath());
134
+ System.exit(0);
135
+ }
124136
125
- } catch (SeCurisException e) {
126
- LOG.error("The command generated an error: {}", e.toString());
127
- }
128
- }
137
+ } catch (SeCurisException e) {
138
+ LOG.error("The command generated an error: {}", e.toString());
139
+ }
140
+ }
129141
130
- private static void checkMandatoryParameter(String value, String param) {
131
- if (value == null) {
132
- LOG.error("Parameter {} is mandatory. Use --help to get information about parameters", param);
133
- System.exit(-5);
134
- }
135
- }
142
+ private static void checkMandatoryParameter(String value, String param) {
143
+ if (value == null) {
144
+ LOG.error("Parameter {} is mandatory. Use --help to get information about parameters", param);
145
+ System.exit(-5);
146
+ }
147
+ }
136148
137
- /**
138
- * Checks that config file exists and contains mandatory parameters
139
- */
140
- private static void checkConfigFile() {
141
- if (Params.get(Params.KEYS.APPLICATION_CODE) == null) {
149
+ /**
150
+ * Checks that config file exists and contains mandatory parameters
151
+ */
152
+ private static void checkConfigFile() {
153
+ if (Params.get(Params.KEYS.APPLICATION_CODE) == null) {
142154
143
- if (Params.get(Params.KEYS.LIC_TYPE_CODE) == null) {
144
- LOG.error("Manadatory parameter {} is not set in config file", Params.KEYS.LIC_TYPE_CODE);
145
- System.exit(-3);
146
- }
147
- if (Params.get(Params.KEYS.CUSTOMER_CODE) == null) {
148
- LOG.error("Manadatory parameter {} is not set in config file", Params.KEYS.CUSTOMER_CODE);
149
- System.exit(-4);
150
- }
151
- if (Params.get(Params.KEYS.PACK_CODE) == null) {
152
- LOG.error("Manadatory parameter {} is not set in config file", Params.KEYS.PACK_CODE);
153
- System.exit(-6);
154
- }
155
- } // else: The license will be got using activationCode
156
- }
155
+ if (Params.get(Params.KEYS.LIC_TYPE_CODE) == null) {
156
+ LOG.error("Manadatory parameter {} is not set in config file", Params.KEYS.LIC_TYPE_CODE);
157
+ System.exit(-3);
158
+ }
159
+ if (Params.get(Params.KEYS.CUSTOMER_CODE) == null) {
160
+ LOG.error("Manadatory parameter {} is not set in config file", Params.KEYS.CUSTOMER_CODE);
161
+ System.exit(-4);
162
+ }
163
+ if (Params.get(Params.KEYS.PACK_CODE) == null) {
164
+ LOG.error("Manadatory parameter {} is not set in config file", Params.KEYS.PACK_CODE);
165
+ System.exit(-6);
166
+ }
167
+ } // else: The license will be got using activationCode
168
+ }
157169
158
- private static CommandLine getCommandLine(String[] args) {
159
- Options ops = prepareOptionCLI();
160
- if (args.length == 0) {
161
- printHelp(ops);
162
- }
163
- CommandLineParser parser = new PosixParser();
164
- CommandLine cmd = null;
165
- try {
166
- cmd = parser.parse(ops, args);
167
- } catch (ParseException e) {
168
- printHelp(ops);
169
- }
170
+ private static CommandLine getCommandLine(String[] args) {
171
+ Options ops = prepareOptionCLI();
172
+ if (args.length == 0) {
173
+ printHelp(ops);
174
+ }
175
+ CommandLineParser parser = new PosixParser();
176
+ CommandLine cmd = null;
177
+ try {
178
+ cmd = parser.parse(ops, args);
179
+ } catch (ParseException e) {
180
+ printHelp(ops);
181
+ }
170182
171
- if (cmd.hasOption('h')) {
172
- printHelp(ops);
173
- }
183
+ if (cmd.hasOption('h')) {
184
+ printHelp(ops);
185
+ }
174186
175
- return cmd;
176
- }
187
+ return cmd;
188
+ }
177189
178
- private static void printHelp(Options ops) {
179
- HelpFormatter formatter = new HelpFormatter();
180
- formatter.printHelp("securis-client", ops, true);
181
- System.exit(-1);
182
- }
190
+ private static void printHelp(Options ops) {
191
+ HelpFormatter formatter = new HelpFormatter();
192
+ formatter.printHelp("securis-client", ops, true);
193
+ System.exit(-1);
194
+ }
183195
184
- @SuppressWarnings("static-access")
185
- private static Options prepareOptionCLI() {
186
- Options options = new Options();
196
+ @SuppressWarnings("static-access")
197
+ private static Options prepareOptionCLI() {
198
+ Options options = new Options();
187199
188
- options.addOption("h", "help", false, "Show help.");
189
- options.addOption(OptionBuilder.withArgName("req_file").withLongOpt("rfile")
190
- .withDescription("Set request file for its generation or for license requesting.").hasArg(true).create('r'));
191
- // options.addOption(OptionBuilder.withArgName("url_license_server").withLongOpt("server").withDescription("License server url.").hasArg(true).create('s'));
192
- options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("validate").withDescription("Validate lic file.").hasArg(true)
193
- .create('l'));
200
+ options.addOption("h", "help", false, "Show help.");
201
+ options.addOption(OptionBuilder.withArgName("req_file").withLongOpt("rfile").withDescription("Set request file for its generation or for license requesting.").hasArg(true)
202
+ .create('r'));
203
+ options.addOption(OptionBuilder.withArgName("app_code").withLongOpt("appcode").withDescription("Set the app code, ignoring the config value.").hasArg(true).create('a'));
204
+ options.addOption(OptionBuilder.withArgName("activation_code").withLongOpt("ac").withDescription("Set the activation code.").hasArg(true).create('o'));
205
+ options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("validate").withDescription("Validate lic file.").hasArg(true).create('l'));
194206
195
- options.addOption("g", "gen_request", false,
196
- "Generate request file. If --rfile parameter is missing then It is generated in current directory.");
197
- options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("create").withDescription("Request a license file to server.")
198
- .hasArg(true).hasOptionalArg().create('c'));
199
- options.addOption("t", "test_lc", false, "Test if License Server (LC) is available. ");
200
- options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("renew").withDescription("Synchronize/renew the current license file.")
201
- .hasArg(true).create('r'));
207
+ options.addOption(OptionBuilder.withLongOpt("gen_request")
208
+ .withDescription("Generate request file. If --rfile parameter is missing then It is generated in current directory.").hasArg(false).create('g'));
209
+ options.addOption(
210
+ OptionBuilder.withArgName("lic_file").withLongOpt("create").withDescription("Request a license file to server.").hasArg(true).hasOptionalArg().create('c'));
211
+ options.addOption("t", "test_lc", false, "Test if License Server (LC) is available. ");
212
+ options.addOption(OptionBuilder.withArgName("lic_file").withLongOpt("renew").withDescription("Synchronize/renew the current license file.").hasArg(true).create('r'));
202213
203
- return options;
204
- }
214
+ return options;
215
+ }
205216
206217 }