diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/common/RSAUtil.java b/src/main/java/com/chinaunicom/mall/ebtp/project/common/RSAUtil.java index 3584b8a..24832f4 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/common/RSAUtil.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/common/RSAUtil.java @@ -1,5 +1,6 @@ package com.chinaunicom.mall.ebtp.project.common; +import com.alibaba.fastjson.JSONArray; import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum; import com.chinaunicom.mall.ebtp.common.util.JsonUtils; import lombok.extern.slf4j.Slf4j; @@ -82,6 +83,10 @@ public class RSAUtil { * @return * @throws Exception */ + public static String decryptByPrivateKey64(String data, String key) + throws Exception { + return new String(decryptByPrivateKey(decryptBASE64(data),key)); + } public static byte[] decryptByPrivateKey(byte[] data, String key) throws Exception { // 对密钥解密 @@ -122,6 +127,11 @@ public class RSAUtil { * @return * @throws Exception */ + public static String decryptByPublicKey64(String data, String key) + throws Exception { + + return new String(decryptByPublicKey(decryptBASE64(data),key)); + } public static byte[] decryptByPublicKey(byte[] data, String key) throws Exception { // 对密钥解密 @@ -148,6 +158,10 @@ public class RSAUtil { * @return * @throws Exception */ + public static String encryptByPublicKey64(String data, String key) throws Exception { + + return encryptBASE64(encryptByPublicKey(data.getBytes(),key)); + } public static byte[] encryptByPublicKey(byte[] data, String key) throws Exception { // 对公钥解密 @@ -174,6 +188,11 @@ public class RSAUtil { * @return * @throws Exception */ + public static String encryptByPrivateKey64(String data, String key) + throws Exception { + + return encryptBASE64(encryptByPrivateKey(data.getBytes(),key)); + } public static byte[] encryptByPrivateKey(byte[] data, String key) throws Exception { // 对密钥解密 @@ -306,42 +325,26 @@ public class RSAUtil { System.out.println("字符类型公钥:" + publicKey); System.out.println("字符类型私钥:" + privateKey); - +// System.out.println("公钥加密——私钥解密---------------"); System.out.println(""); - List list=Arrays.asList("1805120921623646209"); - String source = JsonUtils.objectToJson(list); + List list = new ArrayList<>(); + list.add("220101199902020022"); + String source = JSONArray.toJSONString(list); System.out.println("\r加密前文字:\r\n" + source); - byte[] data = source.getBytes(); - byte[] encodedData = encryptByPublicKey(data, publicKey); - System.out.println("加密后文字:\r\n" + encryptBASE64(encodedData)); - System.out.println("加密后文字2:\r\n" + new String(encodedData)); - byte[] decodedData = decryptByPrivateKey(encodedData, privateKey); - String target = new String(decodedData); - System.out.println("解密后文字: \r\n" + target); + String encodedData = encryptByPublicKey64(source, publicKey); + System.out.println("加密后文字:\r\n" + encodedData); + String decodedData = decryptByPrivateKey64(encodedData, privateKey); + System.out.println("解密后文字: \r\n" + decodedData); - System.out.println("私钥加密——公钥解密--------------"); - String source1 = "fengyong"; - System.out.println("原文字:\r\n" + source1); - byte[] data1 = source1.getBytes(); - byte[] encodedData1 = encryptByPrivateKey(data1, privateKey); - System.out.println("加密后:\r\n" + new String(encodedData1)); - byte[] decodedData1 = decryptByPublicKey(encodedData1, publicKey); - String target1 = new String(decodedData1); - System.out.println("解密后: \r\n" + target1); - System.out.println("私钥签名——公钥验证签名------------------"); -// String sign = sign(encodedData, privateKey); -// System.out.println("签名:\r" + sign); -// boolean status = verify(encodedData, publicKey, sign); -// System.out.println("验证结果:\r" + status); + System.out.println("私钥加密——公钥解密---------------"); // //对内容进行加密和解密 String str = "18560016885"; - byte[] strByte = str.getBytes(); // //私钥加密 - byte[] encode = encryptByPrivateKey(strByte,privateKey); - System.out.println("私钥加密结果:" + encryptBASE64(encode)); + String encode = encryptByPrivateKey64(str,privateKey); + System.out.println("私钥加密结果:" + encode); //公钥解密 - byte[] decode = decryptByPublicKey(encode,publicKey); + String decode = decryptByPublicKey64(encode,publicKey); System.out.println("公钥解密结果:" + new String(decode)); } catch (Exception e) { diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/controller/ProjectRecordController.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/controller/ProjectRecordController.java index 99566d4..5cfdce6 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/controller/ProjectRecordController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/controller/ProjectRecordController.java @@ -4,10 +4,13 @@ package com.chinaunicom.mall.ebtp.project.projectrecord.controller; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum; import com.chinaunicom.mall.ebtp.common.log.OperationLogDetail; import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogBusinessModule; import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogType; +import com.chinaunicom.mall.ebtp.common.util.JsonUtils; import com.chinaunicom.mall.ebtp.project.checkSpecialCharacters.CheckUtil; +import com.chinaunicom.mall.ebtp.project.common.RSAUtil; import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecord; import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecordVO; import com.chinaunicom.mall.ebtp.project.projectrecord.service.IProjectRecordService; @@ -15,12 +18,15 @@ import com.chinaunicom.mall.ebtp.project.projectrecord.vo.ProjectInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -31,6 +37,7 @@ import java.util.Map; * @author daixc * @date 2020/10/26 */ +@Slf4j @RestController @Api(tags = "项目建档信息") @RequestMapping("/v1/projectRecord") @@ -42,6 +49,8 @@ public class ProjectRecordController{ @Resource private CheckUtil checkUtil; + @Value("${mconfig.rsa.field.pivate_key}") + private String rsa_field_pivate_key; /** * 插入新数据 * @@ -333,13 +342,21 @@ public class ProjectRecordController{ /** * 根据项目projectBizNum查询项目负责人相关信息 *私钥加密 公钥解密 - * @param projectBizNumString + * @param projectBizNums * @return 返回结果 */ @ApiOperation("根据项目ids查询项目负责人相关信息") @PostMapping("/getProjectInfoList") @OperationLogDetail(businessModule = EbtpLogBusinessModule.OTHER,operationType = EbtpLogType.UPDATE,detail = "客服-根据项目projectBizNum查询项目负责人相关信息") - public BaseResponse> getProjectInfoList(@ApiParam(value = "对象数据", required = true) @RequestParam String projectBizNumString) { - return BaseResponse.success(projectRecordService.getProjectInfoList(projectBizNumString)); + public BaseResponse> getProjectInfoList(@ApiParam(value = "对象数据", required = true) @RequestParam(value = "projectBizNums", required = false) String projectBizNums) { + List projectBizNumList = new ArrayList<>(); + try { + String str = RSAUtil.decryptByPrivateKey64(projectBizNums, rsa_field_pivate_key); + projectBizNumList = JsonUtils.jsonToList(str,String.class); + }catch (Exception e){ + log.error("无效请求",e); + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("无效请求", true); + } + return BaseResponse.success(projectRecordService.getProjectInfoList(projectBizNumList)); } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java index bb27f2d..c1ac73b 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java @@ -225,5 +225,5 @@ public interface IProjectRecordService extends IBaseService{ */ Map getRoleVerificationByInquiryId(String inquiryId); - List getProjectInfoList(String projectBizNumString); + List getProjectInfoList(List projectIds); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java index 94bb8b2..b45122a 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java @@ -1446,18 +1446,9 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl getProjectInfoList(String projectBizNumString) { -// String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2Jje0B+QYd5o3njTmc74b4FyatzyrXm+bzuxLcjOwtSBoOtAi3j3NcyEheZuPBe1SDkbY+PMOAotEv+aGMZI79hkyIYjxw/RldR7GpKTU5eO+VWYlSH7g7E7o4IVGR/QltFGQd+8kyNJ40AYbMo6U7MCmlBm9S0WaKlHI9cOJhQIDAQAB"; -// String privateKey = "MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBALYmN7QH5Bh3mjeeNOZzvhvgXJq3PKteb5vO7EtyM7C1IGg60CLePc1zISF5m48F7VIORtj48w4Ci0S/5oYxkjv2GTIhiPHD9GV1HsakpNTl475VZiVIfuDsTujghUZH9CW0UZB37yTI0njQBhsyjpTswKaUGb1LRZoqUcj1w4mFAgMBAAECgYEAmG93YoTQEOHXAAC4iLwIN1AWb6w1a70GbkBHZARY2eNbEZ9WnDedRRi6e0dINfNh3q/v/pio3+qlHo3yoA9QLs68YW8yy1xgGqTBsFMhn8Zh1KQ7Alle0+KJdytvpfvf6/YwW6oUk2Y44vm6nVa8EjXKYqloV/PROMa0uTYWUQECQQDvMk/XJ1wjG42IoyLxVSfsMfSCelJvYBYxaFfNPxOYWdOfSSEnAj7QNkDnhuDrLbbsnyy3KvLnUqkILU8fuZLhAkEAwvH5MRwSXpjwZY8xFCLv4YShDB6pG8l4rScjzV5B8SL2DhE/evha5obMO5d+iB73JBP03W6juSCilksy5zovJQJBAI+/Q54ASG3MzCTWLVStIV3fs5qKGmpWa1/r3gA5rPP836G1GBhSUB9ey2iYdSjAg1L2Ya/+PpXn5i9E0200X+ECQQCCQ05QEoHz1B5Ovq/81JuWBhnXD2XQu393tH+n6yQFDWd9XukcMngLMmemKkTSkF50LSGiFRwxyCzcYMNS3v5BAkEA5t2hOtPieYU9SrFENtgQTvtU7WmUumS0mTsDnnGUKsx2hMn8acKPVOskT+VzGg4A2kDoKo+5C9LQp1lc/RkI6A=="; - - try { - projectBizNumString=RSAUtil.decrypt(projectBizNumString,rsa_field_pivate_key); - } catch (Exception e) { - CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("请提供正确参数",true); - } - List projectBizNums= JsonUtils.jsonToList(projectBizNumString,String.class); - CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("请提供参数",projectBizNums==null || projectBizNums.isEmpty()); - List list = this.list(new LambdaQueryWrapper().in(ProjectRecord::getProjectBizNum,projectBizNums)); + public List getProjectInfoList(List projectIds) { + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("请提供参数",projectIds==null || projectIds.isEmpty()); + List list = this.listByIds(projectIds); if(list==null || list.isEmpty()){ return new ArrayList<>(); } @@ -1466,10 +1457,14 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl