Add additional checks of input parameters from html forms
[proteocache.git] / server / compbio / controllers / IPDataController.java
index c95a6cd..7a7e298 100644 (file)
@@ -31,9 +31,24 @@ public class IPDataController {
        }
        
        @RequestMapping(value = "/ip/stat/querycounter", method = RequestMethod.GET)
-       public String findIPwithCounter(@RequestParam("JobCounter") int counter, Map<String, Object> model) {
-               
-               if (counter < 1) {
+       public String findIPwithCounter(@RequestParam("JobCounter") String counter, Map<String, Object> model) {
+
+               if (counter.equals("")) {
+                       model.put("error", "The value must not be empty");
+                       model.put("value", counter);
+                       return "queryIPStatistics";
+               }
+       
+               int realcounter;
+               try {
+                       realcounter = Integer.parseInt(counter.trim());
+               } catch (NumberFormatException e) {
+                       model.put("error", "The value must be an integer number");
+                       model.put("value", counter);
+                       return "queryIPStatistics";
+               }
+
+               if (realcounter < 1) {
                        model.put("error", "The value must be greater than 0");
                        model.put("value", counter);
                        return "queryIPStatistics";
@@ -41,7 +56,7 @@ public class IPDataController {
 
                final long startTime = System.currentTimeMillis();
                CassandraRequester cr = new CassandraRequester();
-               List<DataBase> r = cr.readIpByCounter(counter);
+               List<DataBase> r = cr.readIpByCounter(realcounter);
                model.put("results", r);
                model.put("njobs", 0);
                if (null != r) {
@@ -49,7 +64,7 @@ public class IPDataController {
                }
                final long endTime = System.currentTimeMillis();
                model.put("timeExecution", (endTime - startTime));
-               model.put("counter", counter);
+               model.put("counter", realcounter);
                return "reportIPstatistics";
        }