From 492261a3914e7940bfabe35a77b2ee2b65b99a58 Mon Sep 17 00:00:00 2001 From: zer0Black Date: Tue, 30 May 2023 13:53:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E5=88=97?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E6=89=8B=E6=9C=BA=E5=8F=B7=E5=92=8C=E9=82=AE?= =?UTF-8?q?=E7=AE=B1=E5=8A=A0=E5=AF=86=E6=9F=A5=E8=AF=A2=EF=BC=88=E7=B2=BE?= =?UTF-8?q?=E5=87=86=E6=9F=A5=E8=AF=A2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysUserController.java | 8 +- .../system/service/ISysUserService.java | 34 ++++++++ .../service/impl/SysUserServiceImpl.java | 79 +++++++++++++++++++ 3 files changed, 120 insertions(+), 1 deletion(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index 6e49b94d..4d5789c0 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -125,7 +125,13 @@ public class SysUserController { @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { Results> result = new Results<>(); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap()); + // 处理手机号和邮箱,进行对应加密 + Map parameterMap = req.getParameterMap(); + this.sysUserService.encryptReqMapData(parameterMap); + user.setEmail(this.sysUserService.proceedEmailEncrypt(user.getEmail())); + user.setPhone(this.sysUserService.proceedPhoneEncrypt(user.getPhone())); + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(user, parameterMap); Page page = new Page<>(pageNo, pageSize); List subDepIds = null; diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index e5dfcf83..6caee638 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -292,4 +292,38 @@ public interface ISysUserService extends IService { * @Remarks: 对手机号、邮箱进行加密处理 **/ void proceedUserInfoEncrypt(SysUser user); + + /** + * 单独对邮箱解密 + * @param email + * @return + */ + String proceedEmailDecrypt(String email); + + /** + * 单独对手机号解密 + * @param phone + * @return + */ + String proceedPhoneDecrypt(String phone); + + /** + * 单独对邮箱加密 + * @param email + * @return + */ + String proceedEmailEncrypt(String email); + + /** + * 单独对手机号加密 + * @param phone + * @return + */ + String proceedPhoneEncrypt(String phone); + + /** + * 解密http请求的参数,只处理其中的phone和email + * @return + */ + void encryptReqMapData(Map parameterMap); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index cbb74f23..1b676cff 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -540,6 +540,85 @@ public class SysUserServiceImpl extends ServiceImpl impl } } + @Override + public String proceedEmailDecrypt(String email) { + if (StrUtil.isNotEmpty(email)){ + // 对邮箱地址进行解密 + try { + email = PasswordUtil.decrypt(email); + } catch (Exception e) { + log.error("邮箱解密字符串原文有误,解密错误"); + } + } + + return email; + } + + @Override + public String proceedPhoneDecrypt(String phone) { + if (StrUtil.isNotEmpty(phone)){ + // 对手机号地址进行解密 + try { + phone = PasswordUtil.decrypt(phone); + } catch (Exception e) { + log.error("手机号解密字符串原文有误,解密错误"); + } + } + + return phone; + } + + @Override + public String proceedEmailEncrypt(String email) { + if (StrUtil.isNotEmpty(email)){ + // 对邮箱地址进行加密 + try { + email = PasswordUtil.encrypt(email); + } catch (Exception e) { + log.error("邮箱加密字符串原文有误,加密错误"); + } + } + + return email; + } + + @Override + public String proceedPhoneEncrypt(String phone) { + if (StrUtil.isNotEmpty(phone)){ + // 对手机号地址进行加密 + try { + phone = PasswordUtil.encrypt(phone); + } catch (Exception e) { + log.error("手机号加密字符串原文有误,加密错误"); + } + } + + return phone; + } + + @Override + public void encryptReqMapData(Map parameterMap) { + final String EMAIL_KEY = "email"; + final String PHONE_KEY = "phone"; + + String[] emailArr = parameterMap.get(EMAIL_KEY); + String[] phoneArr = parameterMap.get(PHONE_KEY); + + if (emailArr != null && emailArr.length > 0){ + String email = emailArr[0]; + email = this.proceedEmailEncrypt(email); + emailArr[0] = email; + parameterMap.put(EMAIL_KEY, emailArr); + } + + if (phoneArr != null && phoneArr.length > 0){ + String phone = phoneArr[0]; + phone = this.proceedPhoneEncrypt(phone); + phoneArr[0] = phone; + parameterMap.put(PHONE_KEY, phoneArr); + } + } + @Override @Transactional(rollbackFor = Exception.class) @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)