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);