Support for post without auth 29/41829/1 v1.1.5
authorsu622b <sunil.unnava@att.com>
Mon, 9 Apr 2018 22:51:28 +0000 (18:51 -0400)
committersu622b <sunil.unnava@att.com>
Mon, 9 Apr 2018 22:51:45 +0000 (18:51 -0400)
Issue-ID: DMAAP-399
Change-Id: I51f1ff8ed978e3e00fccd63edf421c794f6e7f32
Signed-off-by: su622b <sunil.unnava@att.com>
src/main/java/com/att/nsa/mr/client/impl/MRBaseClient.java
src/main/java/com/att/nsa/mr/client/impl/MRSimplerBatchPublisher.java

index c7ca529..c3d1c26 100644 (file)
@@ -109,6 +109,20 @@ 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;
+               Response response = null;
+               if (contentType == null) {
+                       contentType = "text/pain";
+               }
+               target = DmaapClientUtil.getTarget(path);
+
+               response = DmaapClientUtil.postResponsewtNoAuth(target, data, contentType);
+
+               return getResponseDataInJson(response);
+       }
 
        public String postWithResponse(final String path, final byte[] data, final String contentType,
                        final String username, final String password, final String protocolFlag)
index 6e1154f..c034e4f 100644 (file)
@@ -377,6 +377,23 @@ public class MRSimplerBatchPublisher extends MRBaseClient implements MRBatchingP
                                fPending.clear();
                                return true;
                        }
+                       
+                       if (ProtocolTypeConstants.HTTPNOAUTH.getValue().equalsIgnoreCase(protocolFlag)) {
+                               getLog().info("sending " + fPending.size() + " msgs to " + httpurl + ". Oldest: "
+                                               + (nowMs - fPending.peek().timestamp) + " ms");
+                               final JSONObject result = postNoAuth(httpurl, baseStream.toByteArray(), contentType);
+
+                               // Here we are checking for error response. If HTTP status
+                               // code is not within the http success response code
+                               // then we consider this as error and return false
+                               if (result.getInt("status") < 200 || result.getInt("status") > 299) {
+                                       return false;
+                               }
+                               final String logLine = "MR reply ok (" + (Clock.now() - startMs) + " ms):" + result.toString();
+                               getLog().info(logLine);
+                               fPending.clear();
+                               return true;
+                       }
                } catch (IllegalArgumentException x) {
                        getLog().warn(x.getMessage(), x);
                } catch (IOException x) {