From f1702d6537568b1677254e27d772d6aa6d658e2c Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Tue, 30 Sep 2014 11:08:45 +0000
Subject: [PATCH] #2021 fix - Added renew command in client
---
src/main/java/net/curisit/securis/ConnectionManager.java | 44 +++++++++++++++++++++++++++++++-------------
1 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/src/main/java/net/curisit/securis/ConnectionManager.java b/src/main/java/net/curisit/securis/ConnectionManager.java
index 06f74f9..dde3e6f 100644
--- a/src/main/java/net/curisit/securis/ConnectionManager.java
+++ b/src/main/java/net/curisit/securis/ConnectionManager.java
@@ -1,5 +1,6 @@
package net.curisit.securis;
+import java.awt.PageAttributes.MediaType;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.KeyManagementException;
@@ -8,6 +9,8 @@
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
+
+import javax.activation.MimeType;
import net.curisit.securis.beans.RequestBean;
import net.curisit.securis.utils.JsonUtils;
@@ -34,6 +37,10 @@
public class ConnectionManager {
private static final Logger LOG = LogManager.getLogger(ConnectionManager.class);
+ private static final int HTTP_STATUS_APP_ERRROR = 418;
+ private static final String JSON_MEDIA_TYPE= "application/json";
+ private static final String ERROR_MESSAGE_HEADER = "X-SECURIS-ERROR-MSG";
+ private static final String ERROR_CODE_MESSAGE_HEADER = "X-SECURIS-ERROR-CODE";
private static ConnectionManager singleton;
@@ -78,8 +85,9 @@
public <T> T executePost(String command, Class<T> returnType, RequestBean req) throws SeCurisException {
HttpPost postRequest = new HttpPost(String.format("%s/%s", serverUrl, command));
- postRequest.addHeader("accept", "application/json");
- postRequest.addHeader("content-type", "application/json");
+ postRequest.addHeader("accept", JSON_MEDIA_TYPE);
+
+ postRequest.addHeader("content-type", JSON_MEDIA_TYPE);
try {
postRequest.setEntity(new StringEntity(JsonUtils.toJSON(req)));
} catch (UnsupportedEncodingException | SeCurisException e1) {
@@ -88,27 +96,38 @@
HttpResponse response;
try {
response = httpClient.execute(postRequest);
- if (response.getStatusLine().getStatusCode() != 200) {
- throw new SeCurisException("Error executing command " + command + ", status: " + response.getStatusLine().getStatusCode());
- }
+
+ checkErrors(command, response);
+
String jsonLic = IOUtils.toString(response.getEntity().getContent());
- LOG.info("License read OK: {}", jsonLic);
+ LOG.debug("Response content read OK: {}", jsonLic);
T responseBean = JsonUtils.json2object(jsonLic, returnType);
- LOG.info("Response bean read OK: {}", responseBean);
- LOG.info("JSON to write in file: {}", JsonUtils.toJSON(responseBean));
+ LOG.debug("Response bean read OK: {}", responseBean);
return responseBean;
} catch (IOException e) {
- LOG.error("Error acessing SeCuris server", e);
+ LOG.error("Error accessing SeCuris server", e);
throw new SeCurisException("Error accessing SeCuris server");
}
}
+ private void checkErrors(String command, HttpResponse response) throws SeCurisException {
+ if (response.getStatusLine().getStatusCode() != 200) {
+ if (response.getStatusLine().getStatusCode() == HTTP_STATUS_APP_ERRROR) {
+ String errorCode = response.getFirstHeader(ERROR_CODE_MESSAGE_HEADER).getValue();
+ String errorMsg = response.getFirstHeader(ERROR_MESSAGE_HEADER).getValue();
+ throw new SeCurisException(String.format("[%s] - %s", errorCode, errorMsg));
+ }
+ LOG.error("Unexpected error executing {}, Reason: {}", command, response.getStatusLine().getReasonPhrase());
+ throw new SeCurisException("Error executing command " + command + ", status: " + response.getStatusLine().getStatusCode());
+ }
+
+ }
public <T> T executeGet(String command, Class<T> returnType) throws SeCurisException {
HttpGet getRequest = new HttpGet(String.format("%s/%s", serverUrl, command));
- getRequest.addHeader("accept", "application/json");
+ getRequest.addHeader("accept", JSON_MEDIA_TYPE);
HttpResponse response;
try {
@@ -117,11 +136,10 @@
throw new SeCurisException("Error executing command " + command + ", status: " + response.getStatusLine().getStatusCode());
}
String jsonLic = IOUtils.toString(response.getEntity().getContent());
- LOG.info("License read OK: {}", jsonLic);
+ LOG.debug("Response content read OK: {}", jsonLic);
T responseBean = JsonUtils.json2object(jsonLic, returnType);
- LOG.info("Response bean read OK: {}", responseBean);
- LOG.info("JSON to write in file: {}", JsonUtils.toJSON(responseBean));
+ LOG.debug("Response bean read OK: {}", responseBean);
return responseBean;
} catch (IOException e) {
--
Gitblit v1.3.2