【modify】统一权限平台做po层封装,且不加密
This commit is contained in:
+44
-15
@@ -11,6 +11,8 @@ import com.jero.modules.docking.iam.dto.IamOrgAcceptDto;
|
||||
import com.jero.modules.docking.iam.dto.IamUserAcceptDto;
|
||||
import com.jero.modules.docking.iam.dto.response.*;
|
||||
import com.jero.modules.docking.iam.exception.IamGlobalException;
|
||||
import com.jero.modules.docking.iam.po.decrypt.AcceptDecryptPo;
|
||||
import com.jero.modules.docking.iam.po.decrypt.SendPoDecryptPo;
|
||||
import com.jero.modules.docking.iam.po.encrypt.AcceptEncryptPo;
|
||||
import com.jero.modules.docking.iam.po.MessageHeader;
|
||||
import com.jero.modules.docking.iam.po.encrypt.SendPoEncryptPo;
|
||||
@@ -68,7 +70,7 @@ public class SyncIamController {
|
||||
|
||||
// 处理统一响应PO层,并加密业务字段
|
||||
MessageHeader acceptMessageHeader = iamCommon.getMessageHeader();
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamSchemaResponse);
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamSchemaResponse);
|
||||
|
||||
return sendPoEncryptPo;
|
||||
}
|
||||
@@ -99,7 +101,7 @@ public class SyncIamController {
|
||||
|
||||
// 处理统一响应PO层,并加密业务字段
|
||||
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamUserCreateResponse);
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamUserCreateResponse);
|
||||
return sendPoEncryptPo;
|
||||
} catch (DuplicateKeyException duplicateKeyException) {
|
||||
log.error("数据库值重复:{}", duplicateKeyException.getMessage());
|
||||
@@ -135,7 +137,7 @@ public class SyncIamController {
|
||||
|
||||
// 处理统一响应PO层,并加密业务字段
|
||||
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||
|
||||
return sendPoEncryptPo;
|
||||
}
|
||||
@@ -164,7 +166,7 @@ public class SyncIamController {
|
||||
|
||||
// 处理统一响应PO层,并加密业务字段
|
||||
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||
|
||||
return sendPoEncryptPo;
|
||||
}
|
||||
@@ -202,7 +204,7 @@ public class SyncIamController {
|
||||
|
||||
// 处理统一响应PO层,并加密业务字段
|
||||
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamOrgCreateResponse);
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamOrgCreateResponse);
|
||||
return sendPoEncryptPo;
|
||||
} catch (DuplicateKeyException duplicateKeyException) {
|
||||
log.error("数据库值重复:{}", duplicateKeyException.getMessage());
|
||||
@@ -245,7 +247,7 @@ public class SyncIamController {
|
||||
|
||||
// 处理统一响应PO层,并加密业务字段
|
||||
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||
|
||||
return sendPoEncryptPo;
|
||||
}
|
||||
@@ -274,7 +276,7 @@ public class SyncIamController {
|
||||
|
||||
// 处理统一响应PO层,并加密业务字段
|
||||
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||
|
||||
return sendPoEncryptPo;
|
||||
}
|
||||
@@ -285,29 +287,53 @@ public class SyncIamController {
|
||||
* 通过type字段来区分
|
||||
*/
|
||||
@PostMapping({"/bpmcCreate"})
|
||||
public BpmcResponseDto bpmcCreate(@RequestBody BpmcAcceptDto bpmcAcceptDto) throws JsonProcessingException {
|
||||
log.info("统一权限服务平台请求数据:{}", bpmcAcceptDto.toString());
|
||||
public SendPoDecryptPo<BpmcResponseDto> bpmcCreate(@RequestBody AcceptDecryptPo<BpmcAcceptDto> acceptDecryptPo) throws JsonProcessingException {
|
||||
if (acceptDecryptPo == null
|
||||
|| acceptDecryptPo.getMessageDecryptTabels() == null
|
||||
|| acceptDecryptPo.getMessageDecryptTabels().getHeader() == null){
|
||||
throw new IamGlobalException(null, "参数传递错误,未收到参数");
|
||||
}
|
||||
|
||||
log.info("统一权限服务平台请求数据:{}", acceptDecryptPo.toString());
|
||||
|
||||
BpmcAcceptDto bpmcAcceptDto = acceptDecryptPo.getMessageDecryptTabels().getHeader();
|
||||
MessageHeader messageHeader = acceptDecryptPo.getMessageHeader();
|
||||
|
||||
if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getType())){
|
||||
return BpmcResponseDto.error("接口类型(type)未传参,请检查");
|
||||
return new SendPoDecryptPo<BpmcResponseDto>().response(
|
||||
this.syncIamService.generatorReturnMessageHeader(messageHeader),
|
||||
BpmcResponseDto.error("接口类型(type)未传参,请检查")
|
||||
);
|
||||
}
|
||||
|
||||
if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getEntity())){
|
||||
return BpmcResponseDto.error("数据实体(entity)未传参,请检查");
|
||||
return new SendPoDecryptPo<BpmcResponseDto>().response(
|
||||
this.syncIamService.generatorReturnMessageHeader(messageHeader),
|
||||
BpmcResponseDto.error("数据实体(entity)未传参,请检查")
|
||||
);
|
||||
}
|
||||
|
||||
if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getAction())){
|
||||
return BpmcResponseDto.error("操作方式(action)未传参,请检查");
|
||||
return new SendPoDecryptPo<BpmcResponseDto>().response(
|
||||
this.syncIamService.generatorReturnMessageHeader(messageHeader),
|
||||
BpmcResponseDto.error("操作方式(action)未传参,请检查")
|
||||
);
|
||||
}
|
||||
|
||||
if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getSignature())){
|
||||
return BpmcResponseDto.error("签名(signature)未传参,请检查");
|
||||
return new SendPoDecryptPo<BpmcResponseDto>().response(
|
||||
this.syncIamService.generatorReturnMessageHeader(messageHeader),
|
||||
BpmcResponseDto.error("签名(signature)未传参,请检查")
|
||||
);
|
||||
}
|
||||
|
||||
// 验证签名
|
||||
String validateSign = SHA256Util.getSHA256StrJava(bpmcAcceptDto.getEntity() + bpmcAppkey + bpmcAcceptDto.getTimestamp());
|
||||
if (!bpmcAcceptDto.getSignature().equals(validateSign)){
|
||||
return BpmcResponseDto.error("签名校验不通过,请检查");
|
||||
return new SendPoDecryptPo<BpmcResponseDto>().response(
|
||||
this.syncIamService.generatorReturnMessageHeader(messageHeader),
|
||||
BpmcResponseDto.error("签名校验不通过,请检查")
|
||||
);
|
||||
}
|
||||
|
||||
BpmcResponseDto bpmcResponseDto = BpmcResponseDto.success();
|
||||
@@ -358,7 +384,10 @@ public class SyncIamController {
|
||||
}
|
||||
}
|
||||
|
||||
return bpmcResponseDto;
|
||||
return new SendPoDecryptPo<BpmcResponseDto>().response(
|
||||
this.syncIamService.generatorReturnMessageHeader(messageHeader),
|
||||
bpmcResponseDto
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.jero.modules.docking.iam.po.decrypt;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.jero.modules.docking.iam.po.MessageHeader;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 和PO系统做数据交互的最外层壳,做数据接收用
|
||||
*/
|
||||
@Data
|
||||
public class AcceptDecryptPo<T> {
|
||||
|
||||
@JsonProperty("MessageHeader")
|
||||
private MessageHeader messageHeader;
|
||||
|
||||
@JsonProperty("Tables")
|
||||
private MessageDecryptTabels<T> messageDecryptTabels;
|
||||
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.jero.modules.docking.iam.po.decrypt;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* PO系统交互必须的实体,包含接口传递的正式数据(仅为套的一层壳)
|
||||
*/
|
||||
@Data
|
||||
public class MessageDecryptTabels<T> {
|
||||
|
||||
@JsonProperty("Header")
|
||||
private T header;
|
||||
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.jero.modules.docking.iam.po.decrypt;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.jero.modules.docking.iam.po.MessageHeader;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 和PO系统做数据交互的最外层壳,做数据发送用
|
||||
*/
|
||||
@Data
|
||||
public class SendPoDecryptPo<T> {
|
||||
|
||||
@JsonProperty("MessageHeader")
|
||||
private MessageHeader messageHeader;
|
||||
|
||||
@JsonProperty("Returns")
|
||||
private T returns;
|
||||
|
||||
public SendPoDecryptPo<T> response(MessageHeader messageHeader, T t){
|
||||
SendPoDecryptPo<T> sendPoDecryptPo = new SendPoDecryptPo<>();
|
||||
sendPoDecryptPo.setMessageHeader(messageHeader);
|
||||
sendPoDecryptPo.setReturns(t);
|
||||
|
||||
return sendPoDecryptPo;
|
||||
}
|
||||
|
||||
}
|
||||
+24
-11
@@ -22,12 +22,14 @@ import com.jero.modules.docking.iam.dto.bpmc.UserRoleDto;
|
||||
import com.jero.modules.docking.iam.dto.response.*;
|
||||
import com.jero.modules.docking.iam.exception.IamGlobalException;
|
||||
import com.jero.modules.docking.iam.po.MessageHeader;
|
||||
import com.jero.modules.docking.iam.po.decrypt.SendPoDecryptPo;
|
||||
import com.jero.modules.docking.iam.po.encrypt.SendPoEncryptPo;
|
||||
import com.jero.modules.docking.iam.po.encrypt.SendEncryptReturnsPo;
|
||||
import com.jero.modules.docking.utils.DockingConstant;
|
||||
import com.jero.modules.system.entity.*;
|
||||
import com.jero.modules.system.service.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -531,19 +533,10 @@ public class SyncIamService {
|
||||
* @return
|
||||
* @throws JsonProcessingException
|
||||
*/
|
||||
public SendPoEncryptPo handlerGloablResponse(MessageHeader acceptMessageHeader, Object object) throws JsonProcessingException {
|
||||
public SendPoEncryptPo handlerGloablEncryptResponse(MessageHeader acceptMessageHeader, Object object) throws JsonProcessingException {
|
||||
SendPoEncryptPo sendPoEncryptPo = new SendPoEncryptPo();
|
||||
|
||||
MessageHeader sendMessageHeader = new MessageHeader();
|
||||
sendMessageHeader.setInterfaceID(acceptMessageHeader.getInterfaceID());
|
||||
sendMessageHeader.setUUID(UUIDGenerator.generate());
|
||||
sendMessageHeader.setMessageId(UUIDGenerator.generate());
|
||||
sendMessageHeader.setSender(DockingConstant.SYSTEM_NAME); // 固定值,即本系统
|
||||
sendMessageHeader.setReceiver(DockingConstant.IAM_SYSTEM_NAME);
|
||||
|
||||
Date curDate = new Date();
|
||||
sendMessageHeader.setSendDate(DateUtils.formatDate(curDate, "YYYYMMDD"));
|
||||
sendMessageHeader.setSendTime(DateUtils.formatDate(curDate, "HHmmss"));
|
||||
MessageHeader sendMessageHeader = generatorReturnMessageHeader(acceptMessageHeader);
|
||||
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
String returnData = objectMapper.writeValueAsString(object);
|
||||
@@ -556,6 +549,26 @@ public class SyncIamService {
|
||||
return sendPoEncryptPo;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param acceptMessageHeader
|
||||
* @return
|
||||
*/
|
||||
@NotNull
|
||||
public MessageHeader generatorReturnMessageHeader(MessageHeader acceptMessageHeader) {
|
||||
MessageHeader sendMessageHeader = new MessageHeader();
|
||||
sendMessageHeader.setInterfaceID(acceptMessageHeader.getInterfaceID());
|
||||
sendMessageHeader.setUUID(UUIDGenerator.generate());
|
||||
sendMessageHeader.setMessageId(UUIDGenerator.generate());
|
||||
sendMessageHeader.setSender(DockingConstant.SYSTEM_NAME); // 固定值,即本系统
|
||||
sendMessageHeader.setReceiver(DockingConstant.IAM_SYSTEM_NAME);
|
||||
|
||||
Date curDate = new Date();
|
||||
sendMessageHeader.setSendDate(DateUtils.formatDate(curDate, "YYYYMMDD"));
|
||||
sendMessageHeader.setSendTime(DateUtils.formatDate(curDate, "HHmmss"));
|
||||
return sendMessageHeader;
|
||||
}
|
||||
|
||||
/**
|
||||
* 角色创建
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user