X-Git-Url: https://gerrit.onap.org/r/gitweb?p=dmaap%2Fdatarouter.git;a=blobdiff_plain;f=datarouter-prov%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdatarouter%2Fprovisioning%2FPublishServlet.java;h=35205aa97683ff5d231e9aed8c25b81445883639;hp=3ae63bb282d0d06a95a0c9c458bd22605fe7ff3c;hb=68a9ca240970fceaf12bbe91b7bad8e1d98ecd93;hpb=45ac8c967dfc9a5c760a264803f99c04466e3936 diff --git a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/PublishServlet.java b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/PublishServlet.java index 3ae63bb2..35205aa9 100644 --- a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/PublishServlet.java +++ b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/PublishServlet.java @@ -26,6 +26,7 @@ package org.onap.dmaap.datarouter.provisioning; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; + import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -34,14 +35,16 @@ import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; +import org.onap.dmaap.datarouter.provisioning.utils.Poker; import org.onap.dmaap.datarouter.provisioning.beans.EventLogRecord; import org.onap.dmaap.datarouter.provisioning.beans.IngressRoute; import org.onap.dmaap.datarouter.provisioning.eelf.EelfMsgs; -import org.onap.dmaap.datarouter.provisioning.utils.DB; /** * This servlet handles redirects for the <publishURL> on the provisioning server, which is generated by the @@ -52,14 +55,15 @@ import org.onap.dmaap.datarouter.provisioning.utils.DB; * @version $Id: PublishServlet.java,v 1.8 2014/03/12 19:45:41 eby Exp $ */ @SuppressWarnings("serial") + public class PublishServlet extends BaseServlet { private int nextNode; private String provstring; private List irt; //Adding EELF Logger Rally:US664892 - private static EELFLogger eelflogger = EELFManager.getInstance() - .getLogger("org.onap.dmaap.datarouter.provisioning.PublishServlet"); + private static EELFLogger eelfLogger = EELFManager.getInstance() + .getLogger(PublishServlet.class); private static final Object lock = new Object(); @@ -74,33 +78,65 @@ public class PublishServlet extends BaseServlet { @Override public void doDelete(HttpServletRequest req, HttpServletResponse resp) { - setIpAndFqdnForEelf("doDelete"); - eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); - redirect(req, resp); + setUpEelfForPublishServlet(req, "doDelete"); + eelfLogger.info(EelfMsgs.ENTRY); + try { + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + redirect(req, resp); + } finally { + eelfLogger.info(EelfMsgs.EXIT); + } } @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) { - setIpAndFqdnForEelf("doGet"); - eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); - redirect(req, resp); + setUpEelfForPublishServlet(req, "doGet"); + eelfLogger.info(EelfMsgs.ENTRY); + try { + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + redirect(req, resp); + } finally { + eelfLogger.info(EelfMsgs.EXIT); + } } @Override public void doPut(HttpServletRequest req, HttpServletResponse resp) { - setIpAndFqdnForEelf("doPut"); - eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); - redirect(req, resp); + setUpEelfForPublishServlet(req, "doPut"); + eelfLogger.info(EelfMsgs.ENTRY); + try { + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + redirect(req, resp); + } finally { + eelfLogger.info(EelfMsgs.EXIT); + } } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) { - setIpAndFqdnForEelf("doPost"); - eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER)); - redirect(req, resp); + setUpEelfForPublishServlet(req, "doPost"); + eelfLogger.info(EelfMsgs.ENTRY); + try { + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER)); + redirect(req, resp); + } finally { + eelfLogger.info(EelfMsgs.EXIT); + } } + private void setUpEelfForPublishServlet(HttpServletRequest req, String method) { + if (StringUtils.isBlank(req.getHeader("X-ONAP-RequestID")) + || StringUtils.isBlank(req.getHeader("X-InvocationID"))) { + setIpFqdnForEelf(method); + } else { + setIpFqdnRequestIDandInvocationIDForEelf(method, req); + } + } + private void redirect(HttpServletRequest req, HttpServletResponse resp) { try { String[] nodes = getNodes(); @@ -116,13 +152,14 @@ public class PublishServlet extends BaseServlet { : "Invalid request - Missing file ID."; elr.setMessage(message); elr.setResult(HttpServletResponse.SC_NOT_FOUND); - eventlogger.info(elr); + eventlogger.error(elr.toString()); resp.sendError(HttpServletResponse.SC_NOT_FOUND, message); } else { // Generate new URL String nextnode = getRedirectNode(feedid, req); - nextnode = nextnode + ":" + DB.getHttpsPort(); + nextnode = nextnode + ":" + ProvRunner.getProvProperties().getProperty( + "org.onap.dmaap.datarouter.provserver.https.port", "8443"); String newurl = "https://" + nextnode + "/publish" + req.getPathInfo(); String qs = req.getQueryString(); if (qs != null) { @@ -133,26 +170,25 @@ public class PublishServlet extends BaseServlet { String message = "Redirected to: " + newurl; elr.setMessage(message); elr.setResult(HttpServletResponse.SC_MOVED_PERMANENTLY); - eventlogger.info(elr); + eventlogger.info(elr.toString()); resp.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); resp.setHeader("Location", newurl); } } } catch (IOException ioe) { - intlogger.error("IOException" + ioe.getMessage()); - + intlogger.error("PROV0151 PublishServlet.redirect: " + ioe.getMessage(), ioe); } } private String getRedirectNode(int feedid, HttpServletRequest req) { // Check to see if the IRT needs to be updated - Poker p = Poker.getPoker(); - String s = p.getProvisioningString(); + Poker pkr = Poker.getPoker(); + String str = pkr.getProvisioningString(); synchronized (lock) { - if (irt == null || (s.length() != provstring.length()) || !s.equals(provstring)) { + if (irt == null || (str.length() != provstring.length()) || !str.equals(provstring)) { // Provisioning string has changed -- update the IRT - provstring = s; + provstring = str; JSONObject jo = new JSONObject(new JSONTokener(provstring)); JSONArray ja = jo.getJSONArray("ingress"); List newlist = new ArrayList<>(); @@ -179,8 +215,7 @@ public class PublishServlet extends BaseServlet { // No IRT rule matches, do round robin of all active nodes String[] nodes = getNodes(); - if (nextNode >= nodes.length) // The list of nodes may have grown/shrunk - { + if (nextNode >= nodes.length) { // The list of nodes may have grown/shrunk nextNode = 0; } return nodes[nextNode++]; @@ -207,6 +242,7 @@ public class PublishServlet extends BaseServlet { } return -1; } catch (NumberFormatException | JSONException e) { + intlogger.debug("PROV0152 PublishServlet.checkPath: " + e.getMessage(), e); return -1; } }