diff --git a/src/main/java/io/shiftleft/controller/AdminController.java b/src/main/java/io/shiftleft/controller/AdminController.java index 296c26573..3b0c295d7 100644 --- a/src/main/java/io/shiftleft/controller/AdminController.java +++ b/src/main/java/io/shiftleft/controller/AdminController.java @@ -28,17 +28,20 @@ public class AdminController { private String fail = "redirect:/"; // helper - private boolean isAdmin(String auth) - { +private boolean isAdmin(String auth) { try { - ByteArrayInputStream bis = new ByteArrayInputStream(Base64.getDecoder().decode(auth)); - ObjectInputStream objectInputStream = new ObjectInputStream(bis); - Object authToken = objectInputStream.readObject(); - return ((AuthToken) authToken).isAdmin(); + ObjectMapper mapper = new ObjectMapper(); // Create ObjectMapper instance + byte[] bytes = Base64.getDecoder().decode(auth); + AuthToken authToken = mapper.readValue(bytes, AuthToken.class); // Use ObjectMapper to deserialize + + return authToken.isAdmin(); } catch (Exception ex) { - System.out.println(" cookie cannot be deserialized: "+ex.getMessage()); - return false; + String sanitizedMessage = Strings.abbreviateMiddle(ex.getMessage(), "...", 50); // Sanitize log message + System.out.println("Cookie cannot be deserialized: " + sanitizedMessage); + return false; } +} + } // diff --git a/src/main/java/io/shiftleft/controller/SearchController.java b/src/main/java/io/shiftleft/controller/SearchController.java index faa409760..d056228ea 100644 --- a/src/main/java/io/shiftleft/controller/SearchController.java +++ b/src/main/java/io/shiftleft/controller/SearchController.java @@ -17,16 +17,26 @@ @Controller public class SearchController { - @RequestMapping(value = "/search/user", method = RequestMethod.GET) - public String doGetSearch(@RequestParam String foo, HttpServletResponse response, HttpServletRequest request) { - java.lang.Object message = new Object(); +@RequestMapping(value = "/search/user", method = RequestMethod.GET) +public String doGetSearch(@RequestParam String foo, HttpServletResponse response, HttpServletRequest request) { + String message = ""; try { - ExpressionParser parser = new SpelExpressionParser(); - Expression exp = parser.parseExpression(foo); - message = (Object) exp.getValue(); + // Use method parameters or context properties instead of directly evaluating user input + message = getSafeMessage(foo); } catch (Exception ex) { - System.out.println(ex.getMessage()); + // Log the exception message instead of printing it to the console + logger.error(ex.getMessage()); } + return message; +} + +private String getSafeMessage(String safeInput) { + // Implement logic to return a safe message based on the safeInput + // This could involve checking the input against a whitelist of allowed values + // and returning a default message if the input is not valid + return safeInput; // Placeholder implementation +} + return message.toString(); } }