修改掌门相关的加解密相关的逻辑和调试相关的逻辑,以及更新表字段

master
土豆兄弟 4 years ago
parent f25855a1cc
commit ee245408bc

@ -1,3 +1,4 @@
USE push;
CREATE TABLE ab_message ( CREATE TABLE ab_message (
id bigint(20) NOT NULL AUTO_INCREMENT, id bigint(20) NOT NULL AUTO_INCREMENT,
gmt_create datetime DEFAULT NULL, gmt_create datetime DEFAULT NULL,
@ -12,3 +13,19 @@ CREATE TABLE ab_message (
send_status tinyint(1) DEFAULT 0 COMMENT '下游推送状态', send_status tinyint(1) DEFAULT 0 COMMENT '下游推送状态',
PRIMARY KEY (id) PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
USE push;
CREATE TABLE zhangmen_message (
id bigint(20) NOT NULL AUTO_INCREMENT,
gmt_create datetime DEFAULT NULL,
gmt_modified datetime DEFAULT NULL,
rec_id bigint(20) DEFAULT NULL COMMENT '记录id',
stu_name varchar(255) DEFAULT NULL COMMENT '报课学生名',
pnum varchar(255) DEFAULT NULL COMMENT 'pnum',
stu_grade tinyint(1) DEFAULT NULL COMMENT '报课年级',
stu_sub tinyint(1) DEFAULT NULL COMMENT '报课学科',
app_id varchar(255) DEFAULT NULL COMMENT '上游推送用户id',
push_time datetime DEFAULT NULL COMMENT '上游推送时间',
submit_status tinyint(1) DEFAULT 0 COMMENT '提交表单状态',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil;
import com.yuyou.openapi.openapi.common.CommonResponse; import com.yuyou.openapi.openapi.common.CommonResponse;
import com.yuyou.openapi.openapi.common.ResponseCode; import com.yuyou.openapi.openapi.common.ResponseCode;
import com.yuyou.openapi.openapi.model.convert.ABMessageConverter; import com.yuyou.openapi.openapi.model.convert.ABMessageConverter;
import com.yuyou.openapi.openapi.model.convert.ZhangmenMessageConverter;
import com.yuyou.openapi.openapi.model.dto.ABMessageDTO; import com.yuyou.openapi.openapi.model.dto.ABMessageDTO;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO; import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientInterMessageVO; import com.yuyou.openapi.openapi.model.vo.ABClientInterMessageVO;
@ -78,9 +79,11 @@ public class ABClient {
if (StringUtils.isEmpty(jsonResult)){ if (StringUtils.isEmpty(jsonResult)){
return CommonResponse.createByErrorMessage(ResponseCode.DECRYPT_ERROR.getDesc()); return CommonResponse.createByErrorMessage(ResponseCode.DECRYPT_ERROR.getDesc());
} }
// vo赋值到DTO
ABZMMessageDTO abzmMessageDTO = JSONUtil.toBean(jsonResult, ABZMMessageDTO.class); ABZMMessageDTO abzmMessageDTO = JSONUtil.toBean(jsonResult, ABZMMessageDTO.class);
ABZMMessageDTO atoCvt = ZhangmenMessageConverter.convertZhangmenMessageDTOFromVO(abzmMessageDTO, vo);
// 处理具体逻辑,返回校验成功的结果 // 处理具体逻辑,返回校验成功的结果
return abClientService.recordZMClientMsg(abzmMessageDTO)? return abClientService.recordZMClientMsg(atoCvt)?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试"); CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
} }
} }

@ -28,8 +28,8 @@ public class ZhangmenMessageConverter {
* @param abClientZMMessageVO * @param abClientZMMessageVO
* @return * @return
*/ */
public static ABZMMessageDTO convertZhangmenMessageDTOFromVO(ABClientZMMessageVO abClientZMMessageVO) { public static ABZMMessageDTO convertZhangmenMessageDTOFromVO(ABZMMessageDTO abzmMessageDTO,ABClientZMMessageVO abClientZMMessageVO) {
ABZMMessageDTO abzmMessageDTO = new ABZMMessageDTO(); BeanUtils.copyProperties(abClientZMMessageVO, abzmMessageDTO);
return abzmMessageDTO; return abzmMessageDTO;
} }

@ -10,6 +10,15 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public class ABZMMessageDTO { public class ABZMMessageDTO {
/**
* ID
*/
private String appId;
/**
*
*/
private Long timestamp;
/** /**
* *

@ -2,7 +2,6 @@ package com.yuyou.openapi.openapi.utils;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.KeyType;
@ -30,7 +29,7 @@ public class SecurityOperationUtil {
*/ */
public static String decZMSecurityInfo(String base64Str){ public static String decZMSecurityInfo(String base64Str){
// Base64解密 // Base64解密
String decodeStr = Base64.decodeStr(base64Str); byte[] decode = Base64.decode(base64Str);
// 私钥 // 私钥
String PRIVATE_KEY = "MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDe1N3ZkmP+K8IX" + String PRIVATE_KEY = "MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDe1N3ZkmP+K8IX" +
"sd1/A9yf22+jQwfeYXNfnhmZDK11NZSdmWdra/aDt+9j/1lwqt7OKNmnsBBOtIDy" + "sd1/A9yf22+jQwfeYXNfnhmZDK11NZSdmWdra/aDt+9j/1lwqt7OKNmnsBBOtIDy" +
@ -58,12 +57,13 @@ public class SecurityOperationUtil {
"CoehxGTQZc5HPEkOCW2YgsBNnqvZKCa7Zrr/eKqJhYp692lN2TbWEq3XL4+8HhNJ" + "CoehxGTQZc5HPEkOCW2YgsBNnqvZKCa7Zrr/eKqJhYp692lN2TbWEq3XL4+8HhNJ" +
"fhNHO4K/MmtF8ISSTMFOAI5VO0FUJAT8b5NG5+NOHBOsLF8sUkf8muU4ds1xt9ln" + "fhNHO4K/MmtF8ISSTMFOAI5VO0FUJAT8b5NG5+NOHBOsLF8sUkf8muU4ds1xt9ln" +
"e48stehnWawL0XwzVOhVBeLwi58="; "e48stehnWawL0XwzVOhVBeLwi58=";
// 加载秘钥 // 加载秘钥
RSA rsa = SecureUtil.rsa(PRIVATE_KEY, null); RSA rsa = SecureUtil.rsa(PRIVATE_KEY, null);
// 公钥加密,私钥解密 // 公钥加密,私钥解密
byte[] decrypt = rsa.decrypt(decodeStr, KeyType.PrivateKey); byte[] decrypt = rsa.decrypt(decode, KeyType.PrivateKey);
// 返回解码后的内容 // 返回解码后的内容
return StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8); return new String(decrypt);
} }
/** /**

@ -1,8 +1,6 @@
package com.yuyou.openapi.openapi; package com.yuyou.openapi.openapi;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA; import cn.hutool.crypto.asymmetric.RSA;
@ -17,12 +15,12 @@ public class RSATest {
@Test @Test
public void testRSA(){ public void testRSA(){
// 待加密字符串 // 待加密字符串
String str = "{\"tag\":{\"tag_key_name\":\"学生姓名\",\"tag_key_mobile\":\"联系方式\",\"tag_key_grade\":\"课程年级\",\"tag_key_course\":\"课程科目\"},\"data\":{\"name\":\"张小兵\",\"mobile\":\"13011112222\",\"grade\":\"三年级\",\"course\":\"数学\"}}"; String str = "{\"tag\":{\"tag_key_id\":111111,\"tag_key_name\":\"学生姓名\",\"tag_key_ mobile\":\"联系方式\",\"tag_key_ grade\":\"课程年级\",\"tag_key_ course\":\"课程科目\"},\"data\":{\"name\":\"张小兵\",\"mobile\":\"13011112222\",\"grade\":\"三年级\",\"course\":\"数学\"}}";
str = "JTdCJTIydGFnJTIyJTNBJTdCJTIydGFnX2tleV9pZCUyMiUzQSUyMklEJXU2ODA3JXU4QkM2JTIyJTJDJTIydGFnX2tleV9uYW1lJTIyJTNBJTIyJXU1QjY2JXU3NTFGJXU1OUQzJXU1NDBEJTIyJTJDJTIydGFnX2tleV8lMjBtb2JpbGUlMjIlM0ElMjIldTgwNTQldTdDRkIldTY1QjkldTVGMEYlMjIlMkMlMjJ0YWdfa2V5XyUyMGdyYWRlJTIyJTNBJTIyJXU4QkZFJXU3QTBCJXU1RTc0JXU3RUE3JTIyJTJDJTIydGFnX2tleV8lMjBjb3Vyc2UlMjIlM0ElMjIldThCRkUldTdBMEIldTc5RDEldTc2RUUlMjIlN0QlMkMlMjJkYXRhJTIyJTNBJTdCJTIybmFtZSUyMiUzQSUyMiV1NUYyMCV1NUMwRiV1NTE3NSUyMiUyQyUyMm1vYmlsZSUyMiUzQSUyMjEzMDExMTEyMjIyJTIyJTJDJTIyZ3JhZGUlMjIlM0ElMjIldTRFMDkldTVFNzQldTdFQTclMjIlMkMlMjJjb3Vyc2UlMjIlM0ElMjIldTY1NzAldTVCNjYlMjIlN0QlN0Q=";
//先用Base64编码 //先用Base64编码
String encode = Base64.encode(str); // String encode = Base64.encode(str);
System.out.println("Base64加密后的内容为:" + encode); // System.out.println("Base64加密后的内容为:" + encode);
// 公钥 // 公钥
String PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3tTd2ZJj/ivCF7HdfwPc" + String PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3tTd2ZJj/ivCF7HdfwPc" +
@ -69,20 +67,20 @@ public class RSATest {
// 加载秘钥 // 加载秘钥
RSA rsa = SecureUtil.rsa(PRIVATE_KEY, PUBLIC_KEY); RSA rsa = SecureUtil.rsa(PRIVATE_KEY, PUBLIC_KEY);
// 公钥加密
// 公钥加密,私钥解密 byte[] encrypt = rsa.encrypt(str, KeyType.PublicKey);
byte[] encrypt = rsa.encrypt(StrUtil.bytes(encode, CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey); String beforeStr = new String(encrypt);
System.out.println("加密串" + StrUtil.str(encrypt, CharsetUtil.CHARSET_UTF_8)); System.out.println("加密后的数据:" + beforeStr);
// System.out.println("加密"+ Arrays.toString(encrypt)); String encode = Base64.encode(encrypt);
byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey); System.out.println("Base64加密后的数据" + encode);
// 私钥解密
//Base64解码 byte[] decode = Base64.decode(encode);
String result = StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8); System.out.println("Base64解密后的数据" + new String(decode));
String decodeStr = Base64.decodeStr(result); byte[] decrypt = rsa.decrypt(decode, KeyType.PrivateKey);
System.out.println("Base64解密后的内容为:" + decodeStr); String result = new String(decrypt);
System.out.println("解密后的数据:" + result);
// 比较 // 比较
Assert.assertEquals(str, decodeStr); Assert.assertEquals(str, result);
} }
} }

Loading…
Cancel
Save