diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java index ef190300..83c5d253 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java @@ -224,7 +224,7 @@ public class AihrOrgSyncService { try { return fetchSnapshot(baseUrl, token, req, resourceType, pageSize, maxPages); } catch (Exception e) { - String warning = "外部 " + resourceType + " 快照拉取失败,已用员工字段兜底: " + e.getMessage(); + String warning = "外部 " + resourceType + " 快照拉取失败,已用员工字段兜底: " + AihrSensitiveText.forModel(e.getMessage()); warnings.add(warning); log.warn(warning); return List.of(); @@ -286,7 +286,7 @@ public class AihrOrgSyncService { } return fetchedToken; } catch (Exception e) { - throw new IllegalStateException("外部组织同步令牌获取失败: " + e.getMessage(), e); + throw new IllegalStateException("外部组织同步令牌获取失败: " + AihrSensitiveText.forModel(e.getMessage()), e); } } @@ -312,7 +312,7 @@ public class AihrOrgSyncService { .build() .send(builder.build(), HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)); if (response.statusCode() < 200 || response.statusCode() >= 300) { - throw new IllegalStateException("HTTP " + response.statusCode() + ": " + truncate(response.body(), 200)); + throw new IllegalStateException("HTTP " + response.statusCode() + "(外部响应体已隐藏)"); } JsonNode root = objectMapper.readTree(response.body()); if (root.has("success") && !root.path("success").asBoolean()) { @@ -320,7 +320,7 @@ public class AihrOrgSyncService { } return root; } catch (Exception e) { - throw new IllegalStateException(e.getMessage(), e); + throw new IllegalStateException(AihrSensitiveText.forModel(e.getMessage()), e); } } diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSensitiveTextTest.java b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSensitiveTextTest.java index f0839903..852f8d47 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSensitiveTextTest.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSensitiveTextTest.java @@ -41,12 +41,15 @@ class AihrSensitiveTextTest { String sopSource = Files.readString(source("AihrSopSeedService.java")); String interviewSource = Files.readString(source("AihrInterviewService.java")); String speechSource = Files.readString(source("AihrSpeechService.java")); + String orgSyncSource = Files.readString(source("AihrOrgSyncService.java")); assertTrue(modelSource.contains("AihrSensitiveText.forModel(prompt)")); assertTrue(sopSource.contains("AihrSensitiveText.forModel(renderPrompt(prompt.template(), queryText, context))")); assertTrue(sopSource.contains("AihrSensitiveText.forModel(\"\"\"")); assertTrue(interviewSource.contains("AihrSensitiveText.personName(candidate.name(), \"候选人\")")); assertTrue(speechSource.contains("AihrSensitiveText.forModel(text.trim())")); + assertTrue(orgSyncSource.contains("外部响应体已隐藏")); + assertTrue(orgSyncSource.contains("AihrSensitiveText.forModel(e.getMessage())")); } private static Path source(String fileName) { diff --git a/scripts/demo-check.sh b/scripts/demo-check.sh index d89d002d..c54b573c 100755 --- a/scripts/demo-check.sh +++ b/scripts/demo-check.sh @@ -464,6 +464,7 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "AihrSensitiveText.forModel(renderPrompt" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java "AihrSensitiveText.forModel(text.trim())" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrVideoService.java "AihrSensitiveText.forModel(fileName)" +contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java "外部响应体已隐藏" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrCaseController.java "仅项目负责人或主管可提交案例素材" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrCaseService.java "position_level IN ('主管', '项目经理')" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrCaseService.java "media_oss_id"