Fix Main Vulnerabilities
[dmaap/datarouter.git] / datarouter-prov / src / main / java / org / onap / dmaap / datarouter / provisioning / SubscriptionServlet.java
index 3294580..5fa370d 100644 (file)
@@ -44,6 +44,8 @@ import org.onap.dmaap.datarouter.provisioning.eelf.EelfMsgs;
 import com.att.eelf.configuration.EELFLogger;\r
 import com.att.eelf.configuration.EELFManager;\r
 \r
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
 /**\r
  * This servlet handles provisioning for the <subscriptionURL> which is generated by the provisioning server to\r
  * handle the inspection, modification, and deletion of a particular subscription to a feed. It supports DELETE to\r
@@ -66,7 +68,7 @@ public class SubscriptionServlet extends ProxyServlet {
      * the <b>Provisioning API</b> document for details on how this method should be invoked.\r
      */\r
     @Override\r
-    public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+    public void doDelete(HttpServletRequest req, HttpServletResponse resp) {\r
         setIpAndFqdnForEelf("doDelete");\r
         eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
         EventLogRecord elr = new EventLogRecord(req);\r
@@ -75,7 +77,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
             return;\r
         }\r
         if (isProxyServer()) {\r
@@ -88,7 +90,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         int subid = getIdFromPath(req);\r
@@ -97,7 +99,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         Subscription sub = Subscription.getSubscriptionById(subid);\r
@@ -106,7 +108,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
             return;\r
         }\r
         // Check with the Authorizer\r
@@ -116,7 +118,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
             return;\r
         }\r
 \r
@@ -132,7 +134,7 @@ public class SubscriptionServlet extends ProxyServlet {
             // Something went wrong with the DELETE\r
             elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);\r
+            sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, intlogger);\r
         }\r
     }\r
 \r
@@ -142,7 +144,7 @@ public class SubscriptionServlet extends ProxyServlet {
      * invoked.\r
      */\r
     @Override\r
-    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+    public void doGet(HttpServletRequest req, HttpServletResponse resp) {\r
         setIpAndFqdnForEelf("doGet");\r
         eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
         EventLogRecord elr = new EventLogRecord(req);\r
@@ -151,7 +153,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
             return;\r
         }\r
         if (isProxyServer()) {\r
@@ -164,7 +166,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         int subid = getIdFromPath(req);\r
@@ -173,7 +175,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         Subscription sub = Subscription.getSubscriptionById(subid);\r
@@ -182,7 +184,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
             return;\r
         }\r
         // Check with the Authorizer\r
@@ -192,7 +194,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
             return;\r
         }\r
 \r
@@ -201,7 +203,11 @@ public class SubscriptionServlet extends ProxyServlet {
         eventlogger.info(elr);\r
         resp.setStatus(HttpServletResponse.SC_OK);\r
         resp.setContentType(SUBFULL_CONTENT_TYPE);\r
-        resp.getOutputStream().print(sub.asJSONObject(true).toString());\r
+        try {\r
+            resp.getOutputStream().print(sub.asJSONObject(true).toString());\r
+        } catch (IOException ioe) {\r
+            eventlogger.error("IOException: " + ioe.getMessage());\r
+        }\r
     }\r
 \r
     /**\r
@@ -209,7 +215,7 @@ public class SubscriptionServlet extends ProxyServlet {
      * the <b>Provisioning API</b> document for details on how this method should be invoked.\r
      */\r
     @Override\r
-    public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+    public void doPut(HttpServletRequest req, HttpServletResponse resp) {\r
         setIpAndFqdnForEelf("doPut");\r
         eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
         EventLogRecord elr = new EventLogRecord(req);\r
@@ -218,7 +224,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
             return;\r
         }\r
         if (isProxyServer()) {\r
@@ -231,7 +237,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         int subid = getIdFromPath(req);\r
@@ -240,7 +246,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         Subscription oldsub = Subscription.getSubscriptionById(subid);\r
@@ -249,7 +255,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
             return;\r
         }\r
         // Check with the Authorizer\r
@@ -259,7 +265,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
             return;\r
         }\r
         // check content type is SUB_CONTENT_TYPE, version 1.0\r
@@ -270,7 +276,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);\r
             return;\r
         }\r
         JSONObject jo = getJSONfromInput(req);\r
@@ -279,7 +285,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         if (intlogger.isDebugEnabled()) {\r
@@ -293,7 +299,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         sub.setSubid(oldsub.getSubid());\r
@@ -306,7 +312,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
 \r
@@ -317,14 +323,22 @@ public class SubscriptionServlet extends ProxyServlet {
             eventlogger.info(elr);\r
             resp.setStatus(HttpServletResponse.SC_OK);\r
             resp.setContentType(SUBFULL_CONTENT_TYPE);\r
-            resp.getOutputStream().print(sub.asLimitedJSONObject().toString());\r
+            try {\r
+                resp.getOutputStream().print(sub.asLimitedJSONObject().toString());\r
+            } catch (IOException ioe) {\r
+                eventlogger.error("IOException: " + ioe.getMessage());\r
+            }\r
 \r
             /**Change Owner ship of Subscriber     Adding for group feature:Rally US708115*/\r
             if (jo.has("changeowner") && subjectgroup != null) {\r
-                Boolean changeowner = (Boolean) jo.get("changeowner");\r
-                if (changeowner != null && changeowner.equals(true)) {\r
-                    sub.setSubscriber(req.getHeader(BEHALF_HEADER));\r
-                    sub.changeOwnerShip();\r
+                try {\r
+                    Boolean changeowner = (Boolean) jo.get("changeowner");\r
+                    if (changeowner != null && changeowner.equals(true)) {\r
+                        sub.setSubscriber(req.getHeader(BEHALF_HEADER));\r
+                        sub.changeOwnerShip();\r
+                    }\r
+                } catch (JSONException je) {\r
+                    eventlogger.error("JSONException: " + je.getMessage());\r
                 }\r
             }\r
             /***End of change ownership*/\r
@@ -334,7 +348,7 @@ public class SubscriptionServlet extends ProxyServlet {
             // Something went wrong with the UPDATE\r
             elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);\r
+            sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, intlogger);\r
         }\r
     }\r
 \r
@@ -343,7 +357,7 @@ public class SubscriptionServlet extends ProxyServlet {
      * Schedule</i> section in the <b>Provisioning API</b> document for details on how this method should be invoked.\r
      */\r
     @Override\r
-    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+    public void doPost(HttpServletRequest req, HttpServletResponse resp) {\r
 // OLD pre-3.0 code\r
 //        String message = "POST not allowed for the subscriptionURL.";\r
 //        EventLogRecord elr = new EventLogRecord(req);\r
@@ -360,7 +374,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
             return;\r
         }\r
         if (isProxyServer()) {\r
@@ -373,7 +387,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         final int subid = getIdFromPath(req);\r
@@ -382,7 +396,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         // check content type is SUBCNTRL_CONTENT_TYPE, version 1.0\r
@@ -393,7 +407,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);\r
             return;\r
         }\r
         // Check with the Authorizer\r
@@ -403,7 +417,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
             return;\r
         }\r
         JSONObject jo = getJSONfromInput(req);\r
@@ -412,7 +426,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
             return;\r
         }\r
         try {\r
@@ -434,7 +448,7 @@ public class SubscriptionServlet extends ProxyServlet {
             elr.setMessage(message);\r
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
             eventlogger.info(elr);\r
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
         }\r
     }\r
 \r
@@ -474,7 +488,6 @@ public class SubscriptionServlet extends ProxyServlet {
                 }\r
             } catch (Exception e) {\r
                 intlogger.warn("Caught exception in SubscriberNotifyThread: " + e);\r
-                e.printStackTrace();\r
             }\r
         }\r
     }\r