| | |
| | | public Map<String, Object> appUser(@PathVariable Integer id) { |
| | | assertAdmin(); |
| | | Map<String, Object> result = appUserClient.sensitiveAppUser(id); |
| | | writeAudit("app-user", id, result == null ? "NOT_FOUND" : "SUCCESS"); |
| | | writeAudit("app-user", id, userName(result), result == null ? "NOT_FOUND" : "SUCCESS"); |
| | | return result; |
| | | } |
| | | |
| | |
| | | result.put("phone", employee.getPhone()); |
| | | result.put("idCard", employee.getIdCard()); |
| | | } |
| | | writeAudit("employee", id, result == null ? "NOT_FOUND" : "SUCCESS"); |
| | | writeAudit("employee", id, employee == null ? null : employee.getName(), result == null ? "NOT_FOUND" : "SUCCESS"); |
| | | return result; |
| | | } |
| | | |
| | |
| | | public Map<String, Object> student(@PathVariable Integer id) { |
| | | assertAdmin(); |
| | | Map<String, Object> result = appUserClient.sensitiveStudent(id); |
| | | writeAudit("student", id, result == null ? "NOT_FOUND" : "SUCCESS"); |
| | | writeAudit("student", id, userName(result), result == null ? "NOT_FOUND" : "SUCCESS"); |
| | | return result; |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | private void writeAudit(String resource, Integer targetUserId, String result) { |
| | | private void writeAudit(String resource, Integer targetUserId, String targetUserName, String result) { |
| | | Map<String, Object> audit = new HashMap<String, Object>(); |
| | | audit.put("traceId", UUID.randomUUID().toString().replace("-", "")); |
| | | audit.put("sourceService", "mb-cloud-management"); |
| | |
| | | audit.put("operationName", "超级管理员查看敏感信息"); |
| | | audit.put("requestMethod", "GET"); |
| | | audit.put("requestUri", "/system/sensitive/" + resource + "/" + targetUserId); |
| | | audit.put("requestParams", "targetUserId=" + targetUserId); |
| | | // 敏感信息访问需同时记录对象名称,避免日志中只有无法识别的 ID。 |
| | | audit.put("requestParams", "targetUserId=" + targetUserId + ", targetUserName=" |
| | | + (targetUserName == null ? "-" : targetUserName)); |
| | | audit.put("userId", UserExt.getUser().getId()); |
| | | audit.put("userAccount", "admin"); |
| | | audit.put("result", result); |
| | | audit.put("createdAt", new Date()); |
| | | auditWriter.append(audit); |
| | | } |
| | | |
| | | private String userName(Map<String, Object> user) { |
| | | if (user == null || user.get("name") == null) return null; |
| | | return String.valueOf(user.get("name")); |
| | | } |
| | | } |