【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.IamUserAcceptDto;
|
||||||
import com.jero.modules.docking.iam.dto.response.*;
|
import com.jero.modules.docking.iam.dto.response.*;
|
||||||
import com.jero.modules.docking.iam.exception.IamGlobalException;
|
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.encrypt.AcceptEncryptPo;
|
||||||
import com.jero.modules.docking.iam.po.MessageHeader;
|
import com.jero.modules.docking.iam.po.MessageHeader;
|
||||||
import com.jero.modules.docking.iam.po.encrypt.SendPoEncryptPo;
|
import com.jero.modules.docking.iam.po.encrypt.SendPoEncryptPo;
|
||||||
@@ -68,7 +70,7 @@ public class SyncIamController {
|
|||||||
|
|
||||||
// 处理统一响应PO层,并加密业务字段
|
// 处理统一响应PO层,并加密业务字段
|
||||||
MessageHeader acceptMessageHeader = iamCommon.getMessageHeader();
|
MessageHeader acceptMessageHeader = iamCommon.getMessageHeader();
|
||||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamSchemaResponse);
|
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamSchemaResponse);
|
||||||
|
|
||||||
return sendPoEncryptPo;
|
return sendPoEncryptPo;
|
||||||
}
|
}
|
||||||
@@ -99,7 +101,7 @@ public class SyncIamController {
|
|||||||
|
|
||||||
// 处理统一响应PO层,并加密业务字段
|
// 处理统一响应PO层,并加密业务字段
|
||||||
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
||||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamUserCreateResponse);
|
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamUserCreateResponse);
|
||||||
return sendPoEncryptPo;
|
return sendPoEncryptPo;
|
||||||
} catch (DuplicateKeyException duplicateKeyException) {
|
} catch (DuplicateKeyException duplicateKeyException) {
|
||||||
log.error("数据库值重复:{}", duplicateKeyException.getMessage());
|
log.error("数据库值重复:{}", duplicateKeyException.getMessage());
|
||||||
@@ -135,7 +137,7 @@ public class SyncIamController {
|
|||||||
|
|
||||||
// 处理统一响应PO层,并加密业务字段
|
// 处理统一响应PO层,并加密业务字段
|
||||||
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
||||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
|
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||||
|
|
||||||
return sendPoEncryptPo;
|
return sendPoEncryptPo;
|
||||||
}
|
}
|
||||||
@@ -164,7 +166,7 @@ public class SyncIamController {
|
|||||||
|
|
||||||
// 处理统一响应PO层,并加密业务字段
|
// 处理统一响应PO层,并加密业务字段
|
||||||
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
||||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
|
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||||
|
|
||||||
return sendPoEncryptPo;
|
return sendPoEncryptPo;
|
||||||
}
|
}
|
||||||
@@ -202,7 +204,7 @@ public class SyncIamController {
|
|||||||
|
|
||||||
// 处理统一响应PO层,并加密业务字段
|
// 处理统一响应PO层,并加密业务字段
|
||||||
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
||||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamOrgCreateResponse);
|
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamOrgCreateResponse);
|
||||||
return sendPoEncryptPo;
|
return sendPoEncryptPo;
|
||||||
} catch (DuplicateKeyException duplicateKeyException) {
|
} catch (DuplicateKeyException duplicateKeyException) {
|
||||||
log.error("数据库值重复:{}", duplicateKeyException.getMessage());
|
log.error("数据库值重复:{}", duplicateKeyException.getMessage());
|
||||||
@@ -245,7 +247,7 @@ public class SyncIamController {
|
|||||||
|
|
||||||
// 处理统一响应PO层,并加密业务字段
|
// 处理统一响应PO层,并加密业务字段
|
||||||
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
||||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
|
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||||
|
|
||||||
return sendPoEncryptPo;
|
return sendPoEncryptPo;
|
||||||
}
|
}
|
||||||
@@ -274,7 +276,7 @@ public class SyncIamController {
|
|||||||
|
|
||||||
// 处理统一响应PO层,并加密业务字段
|
// 处理统一响应PO层,并加密业务字段
|
||||||
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader();
|
||||||
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
|
SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto);
|
||||||
|
|
||||||
return sendPoEncryptPo;
|
return sendPoEncryptPo;
|
||||||
}
|
}
|
||||||
@@ -285,29 +287,53 @@ public class SyncIamController {
|
|||||||
* 通过type字段来区分
|
* 通过type字段来区分
|
||||||
*/
|
*/
|
||||||
@PostMapping({"/bpmcCreate"})
|
@PostMapping({"/bpmcCreate"})
|
||||||
public BpmcResponseDto bpmcCreate(@RequestBody BpmcAcceptDto bpmcAcceptDto) throws JsonProcessingException {
|
public SendPoDecryptPo<BpmcResponseDto> bpmcCreate(@RequestBody AcceptDecryptPo<BpmcAcceptDto> acceptDecryptPo) throws JsonProcessingException {
|
||||||
log.info("统一权限服务平台请求数据:{}", bpmcAcceptDto.toString());
|
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())){
|
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())){
|
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())){
|
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())){
|
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());
|
String validateSign = SHA256Util.getSHA256StrJava(bpmcAcceptDto.getEntity() + bpmcAppkey + bpmcAcceptDto.getTimestamp());
|
||||||
if (!bpmcAcceptDto.getSignature().equals(validateSign)){
|
if (!bpmcAcceptDto.getSignature().equals(validateSign)){
|
||||||
return BpmcResponseDto.error("签名校验不通过,请检查");
|
return new SendPoDecryptPo<BpmcResponseDto>().response(
|
||||||
|
this.syncIamService.generatorReturnMessageHeader(messageHeader),
|
||||||
|
BpmcResponseDto.error("签名校验不通过,请检查")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
BpmcResponseDto bpmcResponseDto = BpmcResponseDto.success();
|
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.dto.response.*;
|
||||||
import com.jero.modules.docking.iam.exception.IamGlobalException;
|
import com.jero.modules.docking.iam.exception.IamGlobalException;
|
||||||
import com.jero.modules.docking.iam.po.MessageHeader;
|
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.SendPoEncryptPo;
|
||||||
import com.jero.modules.docking.iam.po.encrypt.SendEncryptReturnsPo;
|
import com.jero.modules.docking.iam.po.encrypt.SendEncryptReturnsPo;
|
||||||
import com.jero.modules.docking.utils.DockingConstant;
|
import com.jero.modules.docking.utils.DockingConstant;
|
||||||
import com.jero.modules.system.entity.*;
|
import com.jero.modules.system.entity.*;
|
||||||
import com.jero.modules.system.service.*;
|
import com.jero.modules.system.service.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -531,19 +533,10 @@ public class SyncIamService {
|
|||||||
* @return
|
* @return
|
||||||
* @throws JsonProcessingException
|
* @throws JsonProcessingException
|
||||||
*/
|
*/
|
||||||
public SendPoEncryptPo handlerGloablResponse(MessageHeader acceptMessageHeader, Object object) throws JsonProcessingException {
|
public SendPoEncryptPo handlerGloablEncryptResponse(MessageHeader acceptMessageHeader, Object object) throws JsonProcessingException {
|
||||||
SendPoEncryptPo sendPoEncryptPo = new SendPoEncryptPo();
|
SendPoEncryptPo sendPoEncryptPo = new SendPoEncryptPo();
|
||||||
|
|
||||||
MessageHeader sendMessageHeader = new MessageHeader();
|
MessageHeader sendMessageHeader = generatorReturnMessageHeader(acceptMessageHeader);
|
||||||
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"));
|
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
String returnData = objectMapper.writeValueAsString(object);
|
String returnData = objectMapper.writeValueAsString(object);
|
||||||
@@ -556,6 +549,26 @@ public class SyncIamService {
|
|||||||
return sendPoEncryptPo;
|
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