fix 68500 【安全】手机号邮箱等敏感信息在数据库中不是加密存储
This commit is contained in:
+24
-1
@@ -300,7 +300,7 @@ public class SysUserController {
|
|||||||
// @RequestMapping(value = "/queryById", method = RequestMethod.GET)
|
// @RequestMapping(value = "/queryById", method = RequestMethod.GET)
|
||||||
@GetMapping("/queryById")
|
@GetMapping("/queryById")
|
||||||
public Results<SysUser> queryById(@RequestParam(name = "id", required = true) String id) {
|
public Results<SysUser> queryById(@RequestParam(name = "id", required = true) String id) {
|
||||||
SysUser sysUser = sysUserService.getById(id);
|
SysUser sysUser = sysUserService.queryById(id);
|
||||||
if (sysUser == null) {
|
if (sysUser == null) {
|
||||||
return Results.error(INEXISTENCE);
|
return Results.error(INEXISTENCE);
|
||||||
} else {
|
} else {
|
||||||
@@ -451,6 +451,10 @@ public class SysUserController {
|
|||||||
item.setOrgCodeTxt(useDepNames.get(item.getId()))
|
item.setOrgCodeTxt(useDepNames.get(item.getId()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
userList.forEach(user -> {
|
||||||
|
// 对手机号、邮箱进行解密处理
|
||||||
|
sysUserService.proceedDecrypt(user);
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result.setSuccess(true);
|
result.setSuccess(true);
|
||||||
@@ -478,6 +482,10 @@ public class SysUserController {
|
|||||||
@RequestParam(name="realname",required=false) String realname,
|
@RequestParam(name="realname",required=false) String realname,
|
||||||
@RequestParam(name=USER_NAME,required=false) String username) {
|
@RequestParam(name=USER_NAME,required=false) String username) {
|
||||||
IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo);
|
IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo);
|
||||||
|
pageList.getRecords().forEach(user -> {
|
||||||
|
// 对手机号、邮箱进行解密处理
|
||||||
|
sysUserService.proceedDecrypt(user);
|
||||||
|
});
|
||||||
return Results.OK(pageList);
|
return Results.OK(pageList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -501,6 +509,10 @@ public class SysUserController {
|
|||||||
}
|
}
|
||||||
//update-end--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据----------------------
|
//update-end--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据----------------------
|
||||||
List<SysUser> pageList = sysUserService.list(queryWrapper);
|
List<SysUser> pageList = sysUserService.list(queryWrapper);
|
||||||
|
pageList.forEach(user -> {
|
||||||
|
// 对手机号、邮箱进行解密处理
|
||||||
|
sysUserService.proceedDecrypt(user);
|
||||||
|
});
|
||||||
|
|
||||||
//导出文件名称
|
//导出文件名称
|
||||||
mv.addObject(JeroController.FILE_NAME, "用户列表");
|
mv.addObject(JeroController.FILE_NAME, "用户列表");
|
||||||
@@ -577,6 +589,8 @@ public class SysUserController {
|
|||||||
successAndErrorLines.setSuccessLines(successLines);
|
successAndErrorLines.setSuccessLines(successLines);
|
||||||
successAndErrorLines.setErrorLines(errorLines);
|
successAndErrorLines.setErrorLines(errorLines);
|
||||||
try {
|
try {
|
||||||
|
// 对手机号、邮箱进行加密处理
|
||||||
|
sysUserService.proceedEncrypt(sysUserExcel);
|
||||||
sysUserService.save(sysUserExcel);
|
sysUserService.save(sysUserExcel);
|
||||||
successAndErrorLines.setSuccessLines(successLines + 1);
|
successAndErrorLines.setSuccessLines(successLines + 1);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -629,6 +643,9 @@ public class SysUserController {
|
|||||||
String[] userId = userIds.split(",");
|
String[] userId = userIds.split(",");
|
||||||
Collection<String> idList = Arrays.asList(userId);
|
Collection<String> idList = Arrays.asList(userId);
|
||||||
Collection<SysUser> userRole = sysUserService.listByIds(idList);
|
Collection<SysUser> userRole = sysUserService.listByIds(idList);
|
||||||
|
userRole.forEach(user -> {
|
||||||
|
sysUserService.proceedDecrypt(user);
|
||||||
|
});
|
||||||
result.setSuccess(true);
|
result.setSuccess(true);
|
||||||
result.setResult(userRole);
|
result.setResult(userRole);
|
||||||
return result;
|
return result;
|
||||||
@@ -676,6 +693,9 @@ public class SysUserController {
|
|||||||
String roleId = req.getParameter("roleId");
|
String roleId = req.getParameter("roleId");
|
||||||
String username = req.getParameter(USER_NAME);
|
String username = req.getParameter(USER_NAME);
|
||||||
IPage<SysUser> pageList = sysUserService.getUserByRoleId(page,roleId,username);
|
IPage<SysUser> pageList = sysUserService.getUserByRoleId(page,roleId,username);
|
||||||
|
pageList.getRecords().forEach(user -> {
|
||||||
|
sysUserService.proceedDecrypt(user);
|
||||||
|
});
|
||||||
result.setSuccess(true);
|
result.setSuccess(true);
|
||||||
result.setResult(pageList);
|
result.setResult(pageList);
|
||||||
return result;
|
return result;
|
||||||
@@ -793,6 +813,9 @@ public class SysUserController {
|
|||||||
item.setOrgCode(useDepNames.get(item.getId()))
|
item.setOrgCode(useDepNames.get(item.getId()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
pageList.getRecords().forEach(user -> {
|
||||||
|
sysUserService.proceedDecrypt(user);
|
||||||
|
});
|
||||||
result.setSuccess(true);
|
result.setSuccess(true);
|
||||||
result.setResult(pageList);
|
result.setResult(pageList);
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
+14
@@ -278,4 +278,18 @@ public interface ISysUserService extends IService<SysUser> {
|
|||||||
/** userId转为username */
|
/** userId转为username */
|
||||||
List<String> userIdToUsername(Collection<String> userIdList);
|
List<String> userIdToUsername(Collection<String> userIdList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Remarks: 根据id查询
|
||||||
|
**/
|
||||||
|
SysUser queryById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Remarks: 对手机号、邮箱进行解密处理
|
||||||
|
**/
|
||||||
|
void proceedDecrypt(SysUser user);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Remarks: 对手机号、邮箱进行加密处理
|
||||||
|
**/
|
||||||
|
void proceedEncrypt(SysUser user);
|
||||||
}
|
}
|
||||||
|
|||||||
+73
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.system.service.impl;
|
package com.jero.modules.system.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -64,7 +65,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SysUser> queryPage(Page<SysUser> page, List<String> subDepIds, String roleId, QueryWrapper<SysUser> queryWrapper){
|
public IPage<SysUser> queryPage(Page<SysUser> page, List<String> subDepIds, String roleId, QueryWrapper<SysUser> queryWrapper){
|
||||||
return this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper);
|
IPage<SysUser> sysUserIPage = this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper);
|
||||||
|
sysUserIPage.getRecords().forEach(user -> {
|
||||||
|
// 对手机号、邮箱进行解密处理
|
||||||
|
proceedDecrypt(user);
|
||||||
|
});
|
||||||
|
return sysUserIPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -458,6 +464,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveUser(SysUser user, String selectedRoles, String selectedDeparts) {
|
public void saveUser(SysUser user, String selectedRoles, String selectedDeparts) {
|
||||||
//step.1 保存用户
|
//step.1 保存用户
|
||||||
|
// 对手机号、邮箱进行加密处理
|
||||||
|
proceedEncrypt(user);
|
||||||
this.save(user);
|
this.save(user);
|
||||||
//step.2 保存角色
|
//step.2 保存角色
|
||||||
if(oConvertUtils.isNotEmpty(selectedRoles)) {
|
if(oConvertUtils.isNotEmpty(selectedRoles)) {
|
||||||
@@ -477,11 +485,67 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Remarks: 对手机号、邮箱进行加密处理
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void proceedEncrypt(SysUser user) {
|
||||||
|
if (user == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String email = user.getEmail();
|
||||||
|
String phone = user.getPhone();
|
||||||
|
if (StrUtil.isNotEmpty(email)){
|
||||||
|
// 对邮箱地址进行加密
|
||||||
|
email = PasswordUtil.encrypt(email);
|
||||||
|
user.setEmail(email);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isNotEmpty(phone)){
|
||||||
|
// 对手机号码进行加密
|
||||||
|
phone = PasswordUtil.encrypt(phone);
|
||||||
|
user.setPhone(phone);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Remarks: 对手机号、邮箱进行解密处理
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void proceedDecrypt(SysUser user) {
|
||||||
|
if (user == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String email = user.getEmail();
|
||||||
|
String phone = user.getPhone();
|
||||||
|
if (StrUtil.isNotEmpty(email)){
|
||||||
|
// 对邮箱地址进行加密
|
||||||
|
try {
|
||||||
|
email = PasswordUtil.decrypt(email);
|
||||||
|
} catch (Exception e) {
|
||||||
|
email = user.getEmail();
|
||||||
|
}
|
||||||
|
user.setEmail(email);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isNotEmpty(phone)){
|
||||||
|
// 对手机号码进行加密
|
||||||
|
try {
|
||||||
|
phone = PasswordUtil.decrypt(phone);
|
||||||
|
} catch (Exception e) {
|
||||||
|
phone = user.getPhone();
|
||||||
|
}
|
||||||
|
user.setPhone(phone);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
@CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
||||||
public void editUser(SysUser user, String roles, String departs) {
|
public void editUser(SysUser user, String roles, String departs) {
|
||||||
//step.1 修改用户基础信息
|
//step.1 修改用户基础信息
|
||||||
|
// 对手机号、邮箱进行加密处理
|
||||||
|
proceedEncrypt(user);
|
||||||
this.updateById(user);
|
this.updateById(user);
|
||||||
//step.2 修改角色
|
//step.2 修改角色
|
||||||
//处理用户角色 先删后加
|
//处理用户角色 先删后加
|
||||||
@@ -523,5 +587,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
return userList.stream().map(SysUser::getUsername).collect(Collectors.toList());
|
return userList.stream().map(SysUser::getUsername).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysUser queryById(String id) {
|
||||||
|
SysUser user = getById(id);
|
||||||
|
// 对手机号、邮箱进行解密处理
|
||||||
|
proceedDecrypt(user);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user