diff --git a/par-api/src/main/java/com/par/api/controller/AccessResultController.java b/par-api/src/main/java/com/par/api/controller/AccessResultController.java index 67a3167..7c460c7 100644 --- a/par-api/src/main/java/com/par/api/controller/AccessResultController.java +++ b/par-api/src/main/java/com/par/api/controller/AccessResultController.java @@ -37,7 +37,7 @@ public class AccessResultController { String configVersion = (String) payload.get("configVersion"); String contentType = (String) payload.getOrDefault("contentType", "html"); - String content = (String) payload.get("content"); + String content = toStringValue(payload.get("content")); String url = (String) payload.get("url"); Integer statusCode = payload.get("statusCode") instanceof Integer i ? i : null; Integer responseTimeMs = payload.get("responseTimeMs") instanceof Integer i ? i : null; @@ -133,4 +133,10 @@ public class AccessResultController { int affected = accessResultService.batchValidateUrl(siteId, url, isValid); return ApiResponse.success(Map.of("affected", affected)); } + + private String toStringValue(Object obj) { + if (obj == null) return null; + if (obj instanceof String s) return s; + try { return new com.fasterxml.jackson.databind.ObjectMapper().writeValueAsString(obj); } catch (Exception e) { return null; } + } } diff --git a/par-api/src/main/java/com/par/api/controller/ConfigController.java b/par-api/src/main/java/com/par/api/controller/ConfigController.java index a7e3b23..c66e51f 100644 --- a/par-api/src/main/java/com/par/api/controller/ConfigController.java +++ b/par-api/src/main/java/com/par/api/controller/ConfigController.java @@ -25,6 +25,7 @@ public class ConfigController { private final ConfigService configService; private final CachedStorageService storageService; + private static final com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper(); public ConfigController(ConfigService configService, CachedStorageService storageService) { this.configService = configService; @@ -127,7 +128,7 @@ public class ConfigController { HttpServletRequest request) { String version = (String) payload.get("version"); - String configJson = (String) payload.get("config"); + String configJson = toStringValue(payload.get("config")); String schemaVersion = (String) payload.get("schemaVersion"); if (version == null || configJson == null) { @@ -139,4 +140,10 @@ public class ConfigController { SiteConfig config = configService.submitConfig(siteId, version, configJson, schemaVersion, submitterId); return ApiResponse.success(configService.toDTO(config)); } + + private String toStringValue(Object obj) { + if (obj == null) return null; + if (obj instanceof String s) return s; + try { return objectMapper.writeValueAsString(obj); } catch (Exception e) { return null; } + } }