diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/base/TokenReqVo.java b/ruoyi-admin/src/main/java/com/ruoyi/api/base/TokenReqVo.java index 1e70ba3e..bf44a878 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/base/TokenReqVo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/base/TokenReqVo.java @@ -1,8 +1,11 @@ package com.ruoyi.api.base; +import com.ruoyi.common.enums.HttpStatusEnum; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.AuthRsaUtils; import com.ruoyi.common.utils.StringUtils; import lombok.Data; +import lombok.extern.slf4j.Slf4j; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -15,6 +18,7 @@ import javax.validation.constraints.Size; * @date: 2024/01/13 10:17 */ @Data +@Slf4j public class TokenReqVo { /** @@ -37,15 +41,25 @@ public class TokenReqVo { @NotNull(message = "时间戳不能为空") private Long timestamp; + /** + * 获取登录签名 + * + * @author: JiangYuQi + * @date: 2024/01/13 10:17 + */ public Boolean getLoginSign(String privateKey) { boolean signFlag = false; try { + if(!checkTimestamp()){ + throw new ServiceException(HttpStatusEnum.SINGET_TIMEOUT.getInfo(),HttpStatusEnum.SINGET_TIMEOUT.getCode()); + } String decryptByPrivateKey = AuthRsaUtils.decryptByPrivateKey(privateKey,sign); - if (StringUtils.equals(appId + timestamp, decryptByPrivateKey) && checkTimestamp()) { + if (StringUtils.equals(appId + timestamp, decryptByPrivateKey)) { signFlag = true; } } catch (Exception e) { - throw new RuntimeException("签名解密异常"); + log.error(e.getMessage()); + throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); } return signFlag; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java index f0d65f97..57d80762 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/labour/controller/LabourApiController.java @@ -17,7 +17,6 @@ import com.ruoyi.common.enums.LimitType; import com.ruoyi.common.enums.ShiFouEnum; import com.ruoyi.common.enums.UserTypeEnum; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.utils.AuthRsaUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.SysLoginService; @@ -30,6 +29,7 @@ import com.yanzhu.jh.project.service.ISurProjectAttendanceDataService; import com.yanzhu.jh.project.service.ISurProjectAttendanceGroupService; import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -48,6 +48,7 @@ import java.util.List; * @author JiangYuQi * @date 2024-01-13 */ +@Slf4j @RestController @RequestMapping("/api/labour") public class LabourApiController extends BaseController { @@ -86,17 +87,17 @@ public class LabourApiController extends BaseController { if(sysApplyConfig==null){ throw new ServiceException(HttpStatusEnum.ERROR.getInfo(),HttpStatusEnum.ERROR.getCode()); } - if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ + if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){ throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); } AjaxResult ajax = AjaxResult.success(); - String systemToken = ""; + String Authorization = ""; if (req.getLoginSign(sysApplyConfig.getPrivateKey())) { - systemToken = this.getAppIdLoginToken(req.getAppId(),sysApplyConfig); + Authorization = this.getAppIdLoginToken(req.getAppId(),sysApplyConfig); } else { throw new ServiceException(HttpStatusEnum.SINGET_ERROR.getInfo(),HttpStatusEnum.SINGET_ERROR.getCode()); } - ajax.put("systemToken", systemToken); + ajax.put("Authorization", Authorization); return ajax; } @@ -140,13 +141,12 @@ public class LabourApiController extends BaseController { @PostMapping("/v1/pushLabourGroup") public AjaxResult pushLabourGroup(@Validated @RequestBody LabourSignetVo req) { SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); - if(req.checkTimestamp()){ + if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){ + throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); + } + if(req.getDataSign(sysApplyConfig.getPrivateKey())){ try { - if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ - throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); - } - String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign()); - SurProjectAttendanceGroup surProjectAttendanceGroup = JSONObject.parseObject(result, SurProjectAttendanceGroup.class); + SurProjectAttendanceGroup surProjectAttendanceGroup = JSONObject.parseObject(req.getData(), SurProjectAttendanceGroup.class); if(StringUtils.isNotEmpty(surProjectAttendanceGroup.getServerid())){ // 查询当前班组是否已推送 SurProjectAttendanceGroup searchModel = new SurProjectAttendanceGroup(); @@ -155,12 +155,13 @@ public class LabourApiController extends BaseController { List list = surProjectAttendanceGroupService.selectSurProjectAttendanceGroupList(searchModel); if(CollectionUtils.isNotEmpty(list)){ surProjectAttendanceGroup.setId(list.get(0).getId()); + surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId()); surProjectAttendanceGroup.setCreateBy(list.get(0).getCreateBy()); surProjectAttendanceGroup.setCreateTime(list.get(0).getCreateTime()); surProjectAttendanceGroup.setUpdateBy(sysApplyConfig.getAppId()); - surProjectAttendanceGroup.setUpdateTime(new Date()); surProjectAttendanceGroupService.updateSurProjectAttendanceGroup(surProjectAttendanceGroup); }else{ + surProjectAttendanceGroup.setAppId(sysApplyConfig.getAppId()); surProjectAttendanceGroup.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceGroup.setCreateTime(new Date()); surProjectAttendanceGroupService.insertSurProjectAttendanceGroup(surProjectAttendanceGroup); @@ -169,6 +170,7 @@ public class LabourApiController extends BaseController { throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); } }catch (Exception e){ + log.error(e.getMessage()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); } }else{ @@ -191,15 +193,14 @@ public class LabourApiController extends BaseController { // 失败集合 List failServiceIdList = new ArrayList<>(); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); - if(req.checkTimestamp()){ + if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){ + throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); + } + if(req.getDataSign(sysApplyConfig.getPrivateKey())){ try { - if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ - throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); - } // 保存集合 List saveList = new ArrayList<>(); - String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign()); - List surProjectAttendanceGroupList = JSON.parseArray(result,SurProjectAttendanceGroup.class); + List surProjectAttendanceGroupList = JSON.parseArray(req.getData(),SurProjectAttendanceGroup.class); if(CollectionUtils.isNotEmpty(surProjectAttendanceGroupList)){ // 批量删除已保存数据 List params = new ArrayList<>(); @@ -210,6 +211,7 @@ public class LabourApiController extends BaseController { for(int i=0;i list = surProjectAttendanceUserService.selectSurProjectAttendanceUserList(searchModel); if(CollectionUtils.isNotEmpty(list)){ surProjectAttendanceUser.setId(list.get(0).getId()); + surProjectAttendanceUser.setAppId(sysApplyConfig.getAppId()); surProjectAttendanceUser.setCreateBy(list.get(0).getCreateBy()); surProjectAttendanceUser.setCreateTime(list.get(0).getCreateTime()); surProjectAttendanceUser.setUpdateBy(sysApplyConfig.getAppId()); - surProjectAttendanceUser.setUpdateTime(new Date()); surProjectAttendanceUserService.updateSurProjectAttendanceUser(surProjectAttendanceUser); }else{ + surProjectAttendanceUser.setAppId(sysApplyConfig.getAppId()); surProjectAttendanceUser.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceUser.setCreateTime(new Date()); surProjectAttendanceUserService.insertSurProjectAttendanceUser(surProjectAttendanceUser); @@ -271,6 +274,7 @@ public class LabourApiController extends BaseController { throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); } }catch (Exception e){ + log.error(e.getMessage()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); } }else{ @@ -293,15 +297,14 @@ public class LabourApiController extends BaseController { // 失败集合 List failServiceIdList = new ArrayList<>(); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); - if(req.checkTimestamp()){ + if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){ + throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); + } + if(req.getDataSign(sysApplyConfig.getPrivateKey())){ try { - if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ - throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); - } // 保存集合 List saveList = new ArrayList<>(); - String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign()); - List surProjectAttendanceUserList = JSON.parseArray(result,SurProjectAttendanceUser.class); + List surProjectAttendanceUserList = JSON.parseArray(req.getData(),SurProjectAttendanceUser.class); if(CollectionUtils.isNotEmpty(surProjectAttendanceUserList)){ // 批量删除已保存数据 List params = new ArrayList<>(); @@ -311,7 +314,8 @@ public class LabourApiController extends BaseController { surProjectAttendanceUserService.deleteSurProjectAttendanceUserByParams(params); for(int i=0;i list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(searchModel); if(CollectionUtils.isNotEmpty(list)){ surProjectAttendanceData.setId(list.get(0).getId()); + surProjectAttendanceData.setAppId(sysApplyConfig.getAppId()); surProjectAttendanceData.setCreateBy(list.get(0).getCreateBy()); surProjectAttendanceData.setCreateTime(list.get(0).getCreateTime()); surProjectAttendanceData.setUpdateBy(sysApplyConfig.getAppId()); - surProjectAttendanceData.setUpdateTime(new Date()); surProjectAttendanceDataService.updateSurProjectAttendanceData(surProjectAttendanceData); }else{ + surProjectAttendanceData.setAppId(sysApplyConfig.getAppId()); surProjectAttendanceData.setCreateBy(sysApplyConfig.getAppId()); surProjectAttendanceData.setCreateTime(new Date()); surProjectAttendanceDataService.insertSurProjectAttendanceData(surProjectAttendanceData); @@ -374,6 +379,7 @@ public class LabourApiController extends BaseController { throw new ServiceException(HttpStatusEnum.DARA_EXCEPTION.getInfo(),HttpStatusEnum.DARA_EXCEPTION.getCode()); } }catch (Exception e){ + log.error(e.getMessage()); throw new ServiceException(HttpStatusEnum.SINGET_EXCEPTION.getInfo(),HttpStatusEnum.SINGET_EXCEPTION.getCode()); } }else{ @@ -396,15 +402,14 @@ public class LabourApiController extends BaseController { // 失败集合 List failServiceIdList = new ArrayList<>(); SysApplyConfig sysApplyConfig = redisCache.getCacheObject(CacheConstants.YANZHU_SYSTEM_CONFIG+super.getUsername()); - if(req.checkTimestamp()){ + if(StringUtils.equals(ShiFouEnum.SHI.getCode(),sysApplyConfig.getIsDel())){ + throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); + } + if(req.getDataSign(sysApplyConfig.getPrivateKey())){ try { - if(StringUtils.equals(ShiFouEnum.SHI.getCode()+"",sysApplyConfig.getIsDel())){ - throw new ServiceException(HttpStatusEnum.DISABLE.getInfo(),HttpStatusEnum.DISABLE.getCode()); - } // 保存集合 List saveList = new ArrayList<>(); - String result = AuthRsaUtils.decryptByPrivateKey(sysApplyConfig.getPrivateKey(),req.getSign()); - List surProjectAttendanceDataList = JSON.parseArray(result,SurProjectAttendanceData.class); + List surProjectAttendanceDataList = JSON.parseArray(req.getData(),SurProjectAttendanceData.class); if(CollectionUtils.isNotEmpty(surProjectAttendanceDataList)){ // 批量删除已保存数据 List params = new ArrayList<>(); @@ -415,6 +420,7 @@ public class LabourApiController extends BaseController { for(int i=0;i map = new HashMap<>(); +// map.put("serverid","123"); +// map.put("companyName","测试名称"); +// String str = JSON.toJSONString(map); + + List list = new ArrayList<>(); + Map map1 = new HashMap<>(); + map1.put("serverid","1231"); + map1.put("companyName","测试名称1"); + list.add(map1); + Map map2 = new HashMap<>(); + map2.put("serverid","1232"); + map2.put("companyName","测试名称2"); + list.add(map2); + Map map3 = new HashMap<>(); + map3.put("serverid","1233"); + map3.put("companyName","测试名称3"); + list.add(map3); + Map map4 = new HashMap<>(); + map4.put("serverid","1234"); + map4.put("companyName","测试名称4"); + list.add(map4); + String str = JSON.toJSONString(list); System.out.println("明文信息:" + str); + str = Md5Utils.hash(str)+timestamp; // 公钥加密->私钥解密 String encryptByPublicKeyStr = encryptByPublicKey(publicKey, str); System.out.println("公钥加密:" + encryptByPublicKeyStr); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/RSAUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/RSAUtil.java index 3745d405..6f8aadf8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/RSAUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/RSAUtil.java @@ -64,7 +64,7 @@ public final class RSAUtil { */ public static KeyPair getKeyPair() throws NoSuchAlgorithmException { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(RSA); - keyPairGenerator.initialize(2048); + keyPairGenerator.initialize(1024); return keyPairGenerator.generateKeyPair(); } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysApplyConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysApplyConfigMapper.xml index 3078e997..c04ec9b9 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysApplyConfigMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysApplyConfigMapper.xml @@ -103,4 +103,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + \ No newline at end of file diff --git a/ruoyi-ui/src/views/system/applyConfig/index.vue b/ruoyi-ui/src/views/system/applyConfig/index.vue index 9c433a78..ed4a6505 100644 --- a/ruoyi-ui/src/views/system/applyConfig/index.vue +++ b/ruoyi-ui/src/views/system/applyConfig/index.vue @@ -89,16 +89,16 @@ - - + + - +