From 23e010ad135002bac9f5b731faed47fb0b8f34bb Mon Sep 17 00:00:00 2001 From: zer0Black <694429613@qq.com> Date: Sun, 1 Oct 2023 14:22:46 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E8=BF=94=E5=9B=9E=E6=8E=A5=E5=8F=A3=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=8F=82=E6=95=B0=E5=A4=84=E7=90=86=20=E3=80=90?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E3=80=91=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A4=84=E7=90=86=E5=AE=8C=E8=A1=A8=E5=B1=82?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=EF=BC=8C=E6=A0=B8=E5=BF=83=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E5=92=8C=E5=AD=98=E5=82=A8=E5=BE=85=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iam/controller/SyncIamController.java | 26 ++++++++++++++++++- .../docking/iam/service/SyncIamService.java | 4 +-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java index daa1c76a..47c14e9b 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java @@ -6,6 +6,7 @@ import com.jero.modules.docking.iam.dto.IamCommonAcceptDto; import com.jero.modules.docking.iam.dto.IamOrgAcceptDto; import com.jero.modules.docking.iam.dto.IamUserAcceptDto; import com.jero.modules.docking.iam.dto.response.IamSchemaResponse; +import com.jero.modules.docking.iam.dto.response.IamUserCreateResponse; import com.jero.modules.docking.iam.exception.IamGlobalException; import com.jero.modules.docking.iam.po.AcceptPoSystemPo; import com.jero.modules.docking.iam.po.MessageHeader; @@ -62,8 +63,31 @@ public class SyncIamController { } @PostMapping({"/UserCreateService"}) - public SendPoSystemPo userCreateService(@RequestBody AcceptPoSystemPo iamUserInfo) { + public SendPoSystemPo userCreateService(@RequestBody AcceptPoSystemPo iamUserInfo) throws JsonProcessingException { + if (iamUserInfo == null + || iamUserInfo.getMessageTabels() == null + || iamUserInfo.getMessageTabels().getHeader() == null + || iamUserInfo.getMessageTabels().getHeader().getData() == null){ + throw new IamGlobalException(null, "参数传递错误,未收到参数"); + } + + // 对核心数据解密 + String bodyParam = iamUserInfo.getMessageTabels().getHeader().getData(); + String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); + + ObjectMapper objectMapper = new ObjectMapper(); + IamUserAcceptDto userAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamUserAcceptDto.class); + + // 校验身份认证,确保接口正确 必须调用! + this.syncIamService.validateUserAndPwd(userAcceptDto); + + // TODO 处理业务逻辑,存储用户,返回用户id + IamUserCreateResponse iamUserCreateResponse = new IamUserCreateResponse(); + SendPoSystemPo sendPoSystemPo = new SendPoSystemPo(); + // 处理统一响应PO层,并加密业务字段 + MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader(); + sendPoSystemPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamUserCreateResponse); return sendPoSystemPo; } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java index 40c22ced..79624529 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java @@ -113,7 +113,7 @@ public class SyncIamService { * @return * @throws JsonProcessingException */ - public SendPoSystemPo handlerGloablResponse(MessageHeader acceptMessageHeader, IamSchemaResponse iamSchemaResponse) throws JsonProcessingException { + public SendPoSystemPo handlerGloablResponse(MessageHeader acceptMessageHeader, Object object) throws JsonProcessingException { SendPoSystemPo sendPoSystemPo = new SendPoSystemPo(); @@ -129,7 +129,7 @@ public class SyncIamService { sendMessageHeader.setSendTime(DateUtils.formatDate(curDate, "hhmmss")); ObjectMapper objectMapper = new ObjectMapper(); - String returnData = objectMapper.writeValueAsString(iamSchemaResponse); + String returnData = objectMapper.writeValueAsString(object); // 加密PO层外的业务数据 String encryptData = BamboocloudFacade.encrypt(returnData, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE);