diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/policyData/PolicyDataServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/policyData/PolicyDataServlet.java index 0087a0aff6755df41625267aea13c2473701649f..ff01dd9289e307c648e5705a759037a0aa09c9bf 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/policyData/PolicyDataServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/policyData/PolicyDataServlet.java @@ -26,6 +26,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import net.jami.jams.common.objects.user.Group; +import net.jami.jams.common.serialization.tomcat.TomcatCustomErrorHandler; import net.jami.jams.server.core.workflows.RegisterDeviceFlow; import net.jami.jams.server.servlets.api.auth.device.DeviceServlet; @@ -60,6 +61,7 @@ public class PolicyDataServlet extends HttpServlet { * "Account.uiCustomization": * "{\"areTipsEnabled\":false,\"backgroundType\":\"default\"}" * }] + * @apiError (404) {null} null Policy Data could not be retrieved * @apiError (500) {null} null Policy Data could not be retrieved */ @Override @@ -71,7 +73,8 @@ public class PolicyDataServlet extends HttpServlet { String policyData = RegisterDeviceFlow.getPolicyData(group); if (policyData == null) { - resp.setStatus(404); + TomcatCustomErrorHandler.sendCustomError( + resp, 404, "Policy Data not found for this user"); return; } diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/image/FileHandlerServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/image/FileHandlerServlet.java index 9ac1bb43ec76f9a50d719d6283bc0140929cd2fe..6ac7245f436a51f94bcb2412393f5d730904762e 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/image/FileHandlerServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/image/FileHandlerServlet.java @@ -11,7 +11,6 @@ import jakarta.servlet.http.Part; import lombok.extern.slf4j.Slf4j; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import java.nio.file.Files; @@ -162,6 +161,11 @@ public class FileHandlerServlet extends HttpServlet { String fileName = pathParts[3]; Path imageFilePath = Paths.get(IMAGES_DIR, blueprintName, imageType, fileName); + if (!imageFilePath.toFile().exists()) { + response.sendError(HttpServletResponse.SC_NOT_FOUND); + return; + } + byte[] imageData = Files.readAllBytes(imageFilePath); String mimeType = Files.probeContentType(imageFilePath); @@ -174,9 +178,6 @@ public class FileHandlerServlet extends HttpServlet { try (OutputStream out = response.getOutputStream()) { out.write(imageData); } - } catch (FileNotFoundException e) { - log.error("FileHandlerServlet: Error while processing request", e); - response.sendError(HttpServletResponse.SC_NOT_FOUND); } catch (IOException e) { log.error("FileHandlerServlet: Error while processing request", e); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);