DMAAP-1624 Cross Scripting sonar check 52/127652/1
authordavid.mcweeney <david.mcweeney@est.tech>
Thu, 10 Mar 2022 11:39:53 +0000 (11:39 +0000)
committerdavid.mcweeney <david.mcweeney@est.tech>
Thu, 10 Mar 2022 11:42:07 +0000 (11:42 +0000)
Change-Id: Id5a10c3a9dd037d28caaee5e7a1831477cca3dad
Signed-off-by: david.mcweeney <david.mcweeney@est.tech>
Issue-ID: DMAAP-1624

datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/NodeServlet.java

index aa827de..139c749 100644 (file)
@@ -253,7 +253,7 @@ public class NodeServlet extends HttpServlet {
                 return;
             }
             fileid = fileid.substring(18);
-            pubid = req.getHeader("X-DMAAP-DR-PUBLISH-ID");
+            pubid = generateAndValidatePublishId(req);
 
             user = "datartr";   // SP6 : Added usr as datartr to avoid null entries for internal routing
             targets = config.parseRouting(req.getHeader("X-DMAAP-DR-ROUTING"));
@@ -466,6 +466,17 @@ public class NodeServlet extends HttpServlet {
         }
     }
 
+    private String generateAndValidatePublishId(HttpServletRequest req) throws IOException {
+        String newPubId = req.getHeader("X-DMAAP-DR-PUBLISH-ID");
+
+        String regex = ".*";
+
+        if(newPubId.matches(regex)){
+            return newPubId;
+        }
+        throw new IOException("Invalid Header X-DMAAP-DR-PUBLISH-ID");
+    }
+
     private String writeInputStreamToFile(HttpServletRequest req, File data) {
         byte[] buf = new byte[1024 * 1024];
         int bytesRead;