X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=datarouter-prov%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdatarouter%2Fprovisioning%2FPublishServlet.java;h=db5470cc24267c81a818cfa4ce9230ce78e1837f;hb=bda6aeaa60607ab4fe5af508156019d7bd5c0ce4;hp=96e523df4ff552d5a014ff78c6c0683c736f5fd6;hpb=14b8d9552808063686e0c22760cec6e35b960b59;p=dmaap%2Fdatarouter.git 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 96e523df..db5470cc 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,23 +26,26 @@ package org.onap.dmaap.datarouter.provisioning; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; + +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletException; import java.io.IOException; -import java.util.*; -import javax.servlet.ServletConfig; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.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; -import org.slf4j.MDC; +import org.onap.dmaap.datarouter.provisioning.utils.URLUtilities; /** * This servlet handles redirects for the <publishURL> on the provisioning server, which is generated by the @@ -53,13 +56,14 @@ import org.slf4j.MDC; * @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() + private static EELFLogger eelfLogger = EELFManager.getInstance() .getLogger(PublishServlet.class); private static final Object lock = new Object(); @@ -74,63 +78,67 @@ public class PublishServlet extends BaseServlet { } @Override - public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException { + public void doDelete(HttpServletRequest req, HttpServletResponse resp) { setUpEelfForPublishServlet(req, "doDelete"); - eelflogger.info(EelfMsgs.ENTRY); + eelfLogger.info(EelfMsgs.ENTRY); try { - eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); redirect(req, resp); } finally { - eelflogger.info(EelfMsgs.EXIT); + eelfLogger.info(EelfMsgs.EXIT); } } @Override - public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException { + public void doGet(HttpServletRequest req, HttpServletResponse resp) { setUpEelfForPublishServlet(req, "doGet"); - eelflogger.info(EelfMsgs.ENTRY); + eelfLogger.info(EelfMsgs.ENTRY); try { - eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); - redirect(req, resp); + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + redirect(req, resp); } finally { - eelflogger.info(EelfMsgs.EXIT); + eelfLogger.info(EelfMsgs.EXIT); } } @Override - public void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException { + public void doPut(HttpServletRequest req, HttpServletResponse resp) { setUpEelfForPublishServlet(req, "doPut"); - eelflogger.info(EelfMsgs.ENTRY); + eelfLogger.info(EelfMsgs.ENTRY); try { - eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); - redirect(req, resp); + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + redirect(req, resp); } finally { - eelflogger.info(EelfMsgs.EXIT); + eelfLogger.info(EelfMsgs.EXIT); } } @Override - public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException { + public void doPost(HttpServletRequest req, HttpServletResponse resp) { setUpEelfForPublishServlet(req, "doPost"); - eelflogger.info(EelfMsgs.ENTRY); + eelfLogger.info(EelfMsgs.ENTRY); try { - eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER)); - redirect(req, resp); + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER)); + redirect(req, resp); } finally { - eelflogger.info(EelfMsgs.EXIT); + 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"))) { + 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) throws ServletException { + private void redirect(HttpServletRequest req, HttpServletResponse resp) { try { String[] nodes = getNodes(); if (nodes == null || nodes.length == 0) { @@ -145,14 +153,20 @@ 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(); - String newurl = "https://" + nextnode + "/publish" + req.getPathInfo(); + if (Boolean.TRUE.equals(ProvRunner.getTlsEnabled())) { + nextnode = nextnode + ":" + ProvRunner.getProvProperties().getProperty( + "org.onap.dmaap.datarouter.nodeserver.https.port", "8443"); + } else { + nextnode = nextnode + ":" + ProvRunner.getProvProperties().getProperty( + "org.onap.dmaap.datarouter.nodeserver.http.port", "8080"); + } + String newurl = URLUtilities.getUrlSecurityOption() + nextnode + "/publish" + req.getPathInfo(); String qs = req.getQueryString(); if (qs != null) { newurl += "?" + qs; @@ -162,26 +176,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<>(); @@ -208,8 +221,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++]; @@ -236,6 +248,7 @@ public class PublishServlet extends BaseServlet { } return -1; } catch (NumberFormatException | JSONException e) { + intlogger.debug("PROV0152 PublishServlet.checkPath: " + e.getMessage(), e); return -1; } }