This is an automated email from the ASF dual-hosted git repository.

rzo1 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git


The following commit(s) were added to refs/heads/master by this push:
     new dde791e0b Sanitize error responses in UI REST API
dde791e0b is described below

commit dde791e0b398de601c48a3f45acbd781ad67d780
Author: Richard Zowalla <[email protected]>
AuthorDate: Fri Apr 3 12:10:39 2026 +0200

    Sanitize error responses in UI REST API
    
    Log full exception details server-side and return only the exception 
message to HTTP clients instead of the full stack trace.
---
 .../src/main/java/org/apache/storm/daemon/ui/UIHelpers.java   | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git 
a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java 
b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
index 64e33da04..90e10110b 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
@@ -25,8 +25,6 @@ import jakarta.servlet.DispatcherType;
 import jakarta.servlet.Servlet;
 import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.core.SecurityContext;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -494,13 +492,16 @@ public class UIHelpers {
      * @return Map to be converted into json.
      */
     public static Map exceptionToJson(Exception ex, int statusCode) {
-        StringWriter sw = new StringWriter();
-        ex.printStackTrace(new PrintWriter(sw));
+        LOG.error("HTTP {} error", statusCode, ex);
+        String message = ex.getMessage();
+        if (message == null || message.isEmpty()) {
+            message = ex.getClass().getName();
+        }
         return ImmutableMap.of(
                 "error", statusCode
                         + " "
                         + HttpStatus.getMessage(statusCode),
-                "errorMessage", sw.toString());
+                "errorMessage", message);
     }
 
     public static Response makeStandardResponse(Object data, String callback) {

Reply via email to