From 2fa245d0944a24f317bae4ce74111e2bd9620eb8 Mon Sep 17 00:00:00 2001 From: su622b Date: Thu, 11 Jun 2020 17:20:09 -0400 Subject: read and set the jersey client properties Issue-ID: DMAAP-1443 Change-Id: I0f92536fa88c2d21a1467f6c92e162cbe46db85f Signed-off-by: su622b --- .../onap/dmaap/mr/client/impl/DmaapClientUtil.java | 57 +++++++++-- .../onap/dmaap/mr/client/impl/MRBaseClient.java | 114 +++++++++++---------- .../onap/dmaap/mr/client/impl/MRConsumerImpl.java | 1 + .../mr/client/impl/MRSimplerBatchPublisher.java | 1 + 4 files changed, 109 insertions(+), 64 deletions(-) (limited to 'src/main') diff --git a/src/main/java/org/onap/dmaap/mr/client/impl/DmaapClientUtil.java b/src/main/java/org/onap/dmaap/mr/client/impl/DmaapClientUtil.java index b06290a..4c50596 100644 --- a/src/main/java/org/onap/dmaap/mr/client/impl/DmaapClientUtil.java +++ b/src/main/java/org/onap/dmaap/mr/client/impl/DmaapClientUtil.java @@ -21,31 +21,65 @@ *******************************************************************************/ package org.onap.dmaap.mr.client.impl; +import java.util.Properties; + import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Response; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.client.ClientProperties; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; public class DmaapClientUtil { private static final String MR_AUTH_CONSTANT = "X-CambriaAuth"; private static final String MR_DATE_CONSTANT = "X-CambriaDate"; + private static final String[] httpClientProperties = { ClientProperties.CONNECT_TIMEOUT, + ClientProperties.READ_TIMEOUT, ClientProperties.PROXY_USERNAME, ClientProperties.PROXY_PASSWORD, + ClientProperties.PROXY_URI }; + + public static ClientConfig getClientConfig(Properties properties) { + ClientConfig config = new ClientConfig(); + if (properties != null && !properties.isEmpty()) { + setHttpClientProperties(config, properties); + } + return config; + } - public static WebTarget getTarget(final String path, final String username, final String password) { + private static void setHttpClientProperties(ClientConfig config, Properties properties) { + for (int i = 0; i < httpClientProperties.length; i++) { + if ((properties.getProperty(httpClientProperties[i]) != null)) { + config.property(httpClientProperties[i], properties.getProperty(httpClientProperties[i])); + } + } + + } - Client client = ClientBuilder.newClient(); + public static WebTarget getTarget(ClientConfig config, final String path, final String username, + final String password) { + Client client = null; + if (config != null) { + client = ClientBuilder.newClient(config); + } else { + client = ClientBuilder.newClient(); + } HttpAuthenticationFeature feature = HttpAuthenticationFeature.universal(username, password); client.register(feature); return client.target(path); } - public static WebTarget getTarget(final String path) { + public static WebTarget getTarget(ClientConfig config, final String path) { - Client client = ClientBuilder.newClient(); + Client client = null; + if (config != null&&config.getProperties().size()>0) { + client = ClientBuilder.newClient(config); + } else { + client = ClientBuilder.newClient(); + } return client.target(path); } @@ -53,9 +87,11 @@ public class DmaapClientUtil { return target.request().header(MR_AUTH_CONSTANT, username).header(MR_DATE_CONSTANT, password).get(); } - - public static Response postResponsewtCambriaAuth(WebTarget target, String username, String password,byte[] data, String contentType) { - return target.request().header(MR_AUTH_CONSTANT, username).header(MR_DATE_CONSTANT, password).post(Entity.entity(data, contentType)); + + public static Response postResponsewtCambriaAuth(WebTarget target, String username, String password, byte[] data, + String contentType) { + return target.request().header(MR_AUTH_CONSTANT, username).header(MR_DATE_CONSTANT, password) + .post(Entity.entity(data, contentType)); } @@ -64,8 +100,9 @@ public class DmaapClientUtil { return target.request().header("Authorization", "Basic " + authHeader).get(); } - - public static Response postResponsewtBasicAuth(WebTarget target, String authHeader,byte[] data,String contentType) { + + public static Response postResponsewtBasicAuth(WebTarget target, String authHeader, byte[] data, + String contentType) { return target.request().header("Authorization", "Basic " + authHeader).post(Entity.entity(data, contentType)); @@ -76,7 +113,7 @@ public class DmaapClientUtil { return target.request().get(); } - + public static Response postResponsewtNoAuth(WebTarget target, byte[] data, String contentType) { return target.request().post(Entity.entity(data, contentType)); diff --git a/src/main/java/org/onap/dmaap/mr/client/impl/MRBaseClient.java b/src/main/java/org/onap/dmaap/mr/client/impl/MRBaseClient.java index 4c6d74e..b29c100 100644 --- a/src/main/java/org/onap/dmaap/mr/client/impl/MRBaseClient.java +++ b/src/main/java/org/onap/dmaap/mr/client/impl/MRBaseClient.java @@ -31,6 +31,7 @@ import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Response; import org.apache.http.HttpException; +import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.internal.util.Base64; import org.json.JSONArray; import org.json.JSONException; @@ -47,6 +48,7 @@ import org.onap.dmaap.mr.test.clients.ProtocolTypeConstants; public class MRBaseClient extends HttpClient implements MRClient { + private ClientConfig clientConfig = null; protected MRBaseClient(Collection hosts) throws MalformedURLException { super(ConnectionType.HTTP, hosts, MRConstants.kStdMRServicePort); @@ -67,6 +69,14 @@ public class MRBaseClient extends HttpClient implements MRClient { fLog = LoggerFactory.getLogger(this.getClass().getName()); } + public ClientConfig getClientConfig1() { + return clientConfig; + } + + public void setClientConfig(ClientConfig config) { + this.clientConfig = config; + } + @Override public void close() { } @@ -96,12 +106,12 @@ public class MRBaseClient extends HttpClient implements MRClient { public JSONObject post(final String path, final byte[] data, final String contentType, final String username, final String password, final String protocalFlag) throws HttpException, JSONException { if ((null != username && null != password)) { - WebTarget target=null; - Response response=null; - target = DmaapClientUtil.getTarget(path, username, password); + WebTarget target = null; + Response response = null; + target = DmaapClientUtil.getTarget(clientConfig,path, username, password); String encoding = Base64.encodeAsString(username + ":" + password); - response = DmaapClientUtil.postResponsewtBasicAuth(target, encoding,data, contentType); + response = DmaapClientUtil.postResponsewtBasicAuth(target, encoding, data, contentType); return getResponseDataInJson(response); } else { @@ -109,7 +119,7 @@ public class MRBaseClient extends HttpClient implements MRClient { "Authentication Failed: Username/password/AuthKey/AuthDate parameter(s) cannot be null or empty."); } } - + public JSONObject postNoAuth(final String path, final byte[] data, String contentType) throws HttpException, JSONException { WebTarget target = null; @@ -117,7 +127,7 @@ public class MRBaseClient extends HttpClient implements MRClient { if (contentType == null) { contentType = "text/pain"; } - target = DmaapClientUtil.getTarget(path); + target = DmaapClientUtil.getTarget(clientConfig,path); response = DmaapClientUtil.postResponsewtNoAuth(target, data, contentType); @@ -129,21 +139,21 @@ public class MRBaseClient extends HttpClient implements MRClient { throws HttpException, JSONException { String responseData = null; if ((null != username && null != password)) { - WebTarget target=null; - Response response=null; - target = DmaapClientUtil.getTarget(path, username, password); + WebTarget target = null; + Response response = null; + target = DmaapClientUtil.getTarget(clientConfig,path, username, password); String encoding = Base64.encodeAsString(username + ":" + password); - response = DmaapClientUtil.postResponsewtBasicAuth(target, encoding,data, contentType); + response = DmaapClientUtil.postResponsewtBasicAuth(target, encoding, data, contentType); - responseData = (String)response.readEntity(String.class); + responseData = (String) response.readEntity(String.class); return responseData; } else { throw new HttpException( "Authentication Failed: Username/password/AuthKey/AuthDate parameter(s) cannot be null or empty."); } } - + public String postNoAuthWithResponse(final String path, final byte[] data, String contentType) throws HttpException, JSONException { @@ -153,24 +163,23 @@ public class MRBaseClient extends HttpClient implements MRClient { if (contentType == null) { contentType = "text/pain"; } - target = DmaapClientUtil.getTarget(path); + target = DmaapClientUtil.getTarget(clientConfig,path); response = DmaapClientUtil.postResponsewtNoAuth(target, data, contentType); responseData = (String) response.readEntity(String.class); return responseData; } - public JSONObject postAuth(PostAuthDataObject postAuthDO) - throws HttpException, JSONException { - if ((null != postAuthDO.getUsername() && null != postAuthDO.getPassword())) { - WebTarget target = null; - Response response = null; - target = DmaapClientUtil.getTarget(postAuthDO.getPath(), postAuthDO.getUsername(), - postAuthDO.getPassword()); - response = DmaapClientUtil.postResponsewtCambriaAuth(target, postAuthDO.getAuthKey(), - postAuthDO.getAuthDate(), postAuthDO.getData(), postAuthDO.getContentType()); - return getResponseDataInJson(response); - } else { + public JSONObject postAuth(PostAuthDataObject postAuthDO) throws HttpException, JSONException { + if ((null != postAuthDO.getUsername() && null != postAuthDO.getPassword())) { + WebTarget target = null; + Response response = null; + target = DmaapClientUtil.getTarget(clientConfig,postAuthDO.getPath(), postAuthDO.getUsername(), + postAuthDO.getPassword()); + response = DmaapClientUtil.postResponsewtCambriaAuth(target, postAuthDO.getAuthKey(), + postAuthDO.getAuthDate(), postAuthDO.getData(), postAuthDO.getContentType()); + return getResponseDataInJson(response); + } else { throw new HttpException( "Authentication Failed: Username/password/AuthKey/AuthDate parameter(s) cannot be null or empty."); } @@ -181,11 +190,11 @@ public class MRBaseClient extends HttpClient implements MRClient { final String protocolFlag) throws HttpException, JSONException { String responseData = null; if ((null != username && null != password)) { - WebTarget target=null; - Response response=null; - target = DmaapClientUtil.getTarget(path, username, password); + WebTarget target = null; + Response response = null; + target = DmaapClientUtil.getTarget(clientConfig,path, username, password); response = DmaapClientUtil.postResponsewtCambriaAuth(target, authKey, authDate, data, contentType); - responseData = (String)response.readEntity(String.class); + responseData = (String) response.readEntity(String.class); return responseData; } else { @@ -198,14 +207,14 @@ public class MRBaseClient extends HttpClient implements MRClient { throws HttpException, JSONException { if (null != username && null != password) { - WebTarget target=null; - Response response=null; - + WebTarget target = null; + Response response = null; + if (ProtocolTypeConstants.AUTH_KEY.getValue().equalsIgnoreCase(protocolFlag)) { - target = DmaapClientUtil.getTarget(path); + target = DmaapClientUtil.getTarget(clientConfig,path); response = DmaapClientUtil.getResponsewtCambriaAuth(target, username, password); } else { - target = DmaapClientUtil.getTarget(path, username, password); + target = DmaapClientUtil.getTarget(clientConfig,path, username, password); String encoding = Base64.encodeAsString(username + ":" + password); response = DmaapClientUtil.getResponsewtBasicAuth(target, encoding); @@ -222,13 +231,13 @@ public class MRBaseClient extends HttpClient implements MRClient { final String protocolFlag) throws HttpException, JSONException { String responseData = null; if (null != username && null != password) { - WebTarget target=null; - Response response=null; + WebTarget target = null; + Response response = null; if (ProtocolTypeConstants.AUTH_KEY.getValue().equalsIgnoreCase(protocolFlag)) { - target = DmaapClientUtil.getTarget(path); + target = DmaapClientUtil.getTarget(clientConfig,path); response = DmaapClientUtil.getResponsewtCambriaAuth(target, username, password); } else { - target = DmaapClientUtil.getTarget(path, username, password); + target = DmaapClientUtil.getTarget(clientConfig,path, username, password); String encoding = Base64.encodeAsString(username + ":" + password); response = DmaapClientUtil.getResponsewtBasicAuth(target, encoding); } @@ -239,7 +248,7 @@ public class MRBaseClient extends HttpClient implements MRClient { fLog.info("TransactionId : " + transactionid); } - responseData = (String)response.readEntity(String.class); + responseData = (String) response.readEntity(String.class); return responseData; } else { throw new HttpException( @@ -250,9 +259,9 @@ public class MRBaseClient extends HttpClient implements MRClient { public JSONObject getAuth(final String path, final String authKey, final String authDate, final String username, final String password, final String protocolFlag) throws HttpException, JSONException { if (null != username && null != password) { - WebTarget target=null; - Response response=null; - target = DmaapClientUtil.getTarget(path, username, password); + WebTarget target = null; + Response response = null; + target = DmaapClientUtil.getTarget(clientConfig,path, username, password); response = DmaapClientUtil.getResponsewtCambriaAuth(target, authKey, authDate); return getResponseDataInJson(response); @@ -266,7 +275,7 @@ public class MRBaseClient extends HttpClient implements MRClient { WebTarget target = null; Response response = null; - target = DmaapClientUtil.getTarget(path); + target = DmaapClientUtil.getTarget(clientConfig,path); response = DmaapClientUtil.getResponsewtNoAuth(target); return getResponseDataInJson(response); @@ -276,9 +285,9 @@ public class MRBaseClient extends HttpClient implements MRClient { final String password, final String protocolFlag) throws HttpException, JSONException { String responseData = null; if (null != username && null != password) { - WebTarget target=null; - Response response=null; - target = DmaapClientUtil.getTarget(path, username, password); + WebTarget target = null; + Response response = null; + target = DmaapClientUtil.getTarget(clientConfig,path, username, password); response = DmaapClientUtil.getResponsewtCambriaAuth(target, authKey, authDate); MRClientFactory.HTTPHeadersMap = response.getHeaders(); @@ -288,7 +297,7 @@ public class MRBaseClient extends HttpClient implements MRClient { fLog.info("TransactionId : " + transactionid); } - responseData = (String)response.readEntity(String.class); + responseData = (String) response.readEntity(String.class); return responseData; } else { throw new HttpException( @@ -299,9 +308,9 @@ public class MRBaseClient extends HttpClient implements MRClient { public String getNoAuthResponse(String path, final String username, final String password, final String protocolFlag) throws HttpException, JSONException { String responseData = null; - WebTarget target=null; - Response response=null; - target = DmaapClientUtil.getTarget(path, username, password); + WebTarget target = null; + Response response = null; + target = DmaapClientUtil.getTarget(clientConfig,path, username, password); response = DmaapClientUtil.getResponsewtNoAuth(target); MRClientFactory.HTTPHeadersMap = response.getHeaders(); @@ -311,16 +320,14 @@ public class MRBaseClient extends HttpClient implements MRClient { fLog.info("TransactionId : " + transactionid); } - responseData = (String)response.readEntity(String.class); + responseData = (String) response.readEntity(String.class); return responseData; } - private JSONObject getResponseDataInJson(Response response) throws JSONException { try { MRClientFactory.HTTPHeadersMap = response.getHeaders(); - // MultivaluedMap headersMap = // for(String key : headersMap.keySet()) { @@ -329,7 +336,6 @@ public class MRBaseClient extends HttpClient implements MRClient { fLog.info("TransactionId : " + transactionid); } - if (response.getStatus() == 403) { JSONObject jsonObject = null; jsonObject = new JSONObject(); @@ -339,7 +345,7 @@ public class MRBaseClient extends HttpClient implements MRClient { jsonObject.put("status", response.getStatus()); return jsonObject; } - String responseData = (String)response.readEntity(String.class); + String responseData = (String) response.readEntity(String.class); JSONTokener jsonTokener = new JSONTokener(responseData); JSONObject jsonObject = null; diff --git a/src/main/java/org/onap/dmaap/mr/client/impl/MRConsumerImpl.java b/src/main/java/org/onap/dmaap/mr/client/impl/MRConsumerImpl.java index 73840be..0b06f77 100644 --- a/src/main/java/org/onap/dmaap/mr/client/impl/MRConsumerImpl.java +++ b/src/main/java/org/onap/dmaap/mr/client/impl/MRConsumerImpl.java @@ -694,6 +694,7 @@ public class MRConsumerImpl extends MRBaseClient implements MRConsumer { public void setProps(Properties props) { this.props = props; + setClientConfig(DmaapClientUtil.getClientConfig(props)); } public String getUsername() { diff --git a/src/main/java/org/onap/dmaap/mr/client/impl/MRSimplerBatchPublisher.java b/src/main/java/org/onap/dmaap/mr/client/impl/MRSimplerBatchPublisher.java index 8f2a66e..9b969a6 100644 --- a/src/main/java/org/onap/dmaap/mr/client/impl/MRSimplerBatchPublisher.java +++ b/src/main/java/org/onap/dmaap/mr/client/impl/MRSimplerBatchPublisher.java @@ -707,6 +707,7 @@ public class MRSimplerBatchPublisher extends MRBaseClient implements MRBatchingP public void setProps(Properties props) { this.props = props; + setClientConfig(DmaapClientUtil.getClientConfig(props)); } public String getProtocolFlag() { -- cgit 1.2.3-korg