From 75936f519cbc0a01b730350996412680c98733fa Mon Sep 17 00:00:00 2001 From: weiweiw <14335254+weiweiw22@user.noreply.gitee.com> Date: Tue, 12 Nov 2024 14:54:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=AE=B9=E9=87=8F=E8=BE=BE?= =?UTF-8?q?=E5=88=B0=E4=B8=8A=E9=99=90=E7=9A=8490%=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/security/utils/SecurityUtils.java | 17 +++++++++-------- .../system/controller/SysLogController.java | 11 ++++++----- .../system/controller/SysUserController.java | 4 ---- .../service/impl/SysLogServiceImpl.java | 8 ++++---- .../service/impl/SysOperLogServiceImpl.java | 2 +- .../com/bonus/system/warning/SysWarning.java | 3 ++- .../system/warning/WebSocketHandler.java | 19 +++++++++---------- .../resources/mapper/system/SysLogMapper.xml | 2 +- 8 files changed, 32 insertions(+), 34 deletions(-) diff --git a/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/utils/SecurityUtils.java b/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/utils/SecurityUtils.java index cc30b41..2851aa9 100644 --- a/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/utils/SecurityUtils.java +++ b/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/utils/SecurityUtils.java @@ -5,8 +5,8 @@ import com.bonus.common.core.constant.TokenConstants; import com.bonus.common.core.context.SecurityContextHolder; import com.bonus.common.core.utils.ServletUtils; import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.core.utils.encryption.Sm4Utils; import com.bonus.system.api.model.LoginUser; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import javax.servlet.http.HttpServletRequest; @@ -99,8 +99,8 @@ public class SecurityUtils */ public static String encryptPassword(String password) { - BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); - return passwordEncoder.encode(password); + return Sm4Utils.encrypt(password); + } /** @@ -112,17 +112,18 @@ public class SecurityUtils */ public static boolean matchesPassword(String rawPassword, String encodedPassword) { - BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); - return passwordEncoder.matches(rawPassword, encodedPassword); + return encodedPassword.equals(Sm4Utils.encrypt(rawPassword)); } public static void main(String[] args) { //$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2 //$2a$10$zvlw3Mu8M.j.MhAChrYwluj88ziX6lVD3AoRrBQpwKMcdIZvKMoR2 // String msg= encryptPassword("Admin@1234"); - String msg= encryptPassword("Bonus$2024"); - boolean rest = matchesPassword("Bonus$2024","$2a$10$8JaKSUAU.K.mceU1.YQbd.wP4EJzbrsIscjAwPlfDR7wAWV6s/BGa"); +// String msg= encryptPassword("Bonus$2024"); +// boolean rest = matchesPassword("Bonus$2024","$2a$10$8JaKSUAU.K.mceU1.YQbd.wP4EJzbrsIscjAwPlfDR7wAWV6s/BGa"); + String msg = Sm4Utils.encrypt("Bonus$2026"); +// boolean rest = Sm4Utils.decrypt("$2a$10$8JaKSUAU.K.mceU1.YQbd.wP4EJzbrsIscjAwPlfDR7wAWV6s/BGa").equals("Bonus$2026"); System.err.println(msg); - System.err.println(rest); +// System.err.println(rest); } } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysLogController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysLogController.java index 2cceffa..11811e4 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysLogController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysLogController.java @@ -184,11 +184,12 @@ public class SysLogController extends BaseController { return service.getLogStatistics(dto); } -// @ApiOperation(value = "查询日志告警") -// @PostMapping("logWarn") -// public R> logWarn() { -// return service.logWarn(); -// } + @ApiOperation(value = "查询日志告警") + @GetMapping("logWarn") + public AjaxResult logWarn() { + service.handleWarningLog(); + return success(); + } } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java index 42e8741..5fd913a 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java @@ -229,10 +229,6 @@ public class SysUserController extends BaseController { ajax.put("user", user); ajax.put("roles", roles); ajax.put("permissions", permissions); - //在系统管理员和审计管理员登录时处理警告日志 - if(roles.contains("admin") || roles.contains("audit") || roles.contains("systemAdmin")){ - sysLogService.handleWarningLog(); - } return ajax; } catch (Exception e) { logger.error(e.toString(), e); diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysLogServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysLogServiceImpl.java index 3079115..23f77df 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysLogServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysLogServiceImpl.java @@ -69,7 +69,7 @@ public class SysLogServiceImpl implements ISysLogService { } mapper.saveLogs(sysLog); if (sysLog.getLogType() == 2) { - eventPublisher.publishEvent(new WaringLogEvent(new SysWarning(sysLog.getLogId(),sysLog.getErrType() ,sysLog.getIp(),sysLog.getOperaUserName(),sysLog.getOperTime()))); + eventPublisher.publishEvent(new WaringLogEvent(new SysWarning(sysLog.getLogId(),sysLog.getErrType() ,sysLog.getIp(),sysLog.getOperaUserName(),sysLog.getOperTime(),"0"))); } } catch (Exception e) { log.error("保存系统日志"); @@ -110,7 +110,7 @@ public class SysLogServiceImpl implements ISysLogService { } mapper.saveLogs(sysLog); if (sysLog.getLogType() == 2) { - eventPublisher.publishEvent(new WaringLogEvent(new SysWarning(loginUuid, "越权访问", ip, user.getUsername(), DateUtils.getTime()))); + eventPublisher.publishEvent(new WaringLogEvent(new SysWarning(loginUuid, "越权访问", ip, user.getUsername(), DateUtils.getTime(),"0"))); } }catch (Exception e){ log.error(e.toString(),e); @@ -273,7 +273,7 @@ public class SysLogServiceImpl implements ISysLogService { Double max=Double.parseDouble(city)*bfb; if(d>=max){ String warningEvent = "日志容量告警,当日日志内存为" +d+ "MB,日志内存超过总内存的90%,请及时处理!"; - eventPublisher.publishEvent(new WaringLogEvent(new SysWarning("0",warningEvent,"",null,null))); + eventPublisher.publishEvent(new WaringLogEvent(new SysWarning("0",warningEvent,"",null,null, "1"))); } }catch (Exception e){ log.error(e.toString(),e); @@ -286,7 +286,7 @@ public class SysLogServiceImpl implements ISysLogService { List list = mapper.getNotHandleWarningLog(); // 使用for-each循环遍历List for (SysLogsVo item : list) { - eventPublisher.publishEvent(new WaringLogEvent(new SysWarning(item.getLogId(),item.getErrType(), item.getIp(),item.getOperaUserName(),item.getOperTime()))); + eventPublisher.publishEvent(new WaringLogEvent(new SysWarning(item.getLogId(),item.getErrType(), item.getIp(),item.getOperaUserName(),item.getOperTime(),"0"))); log.info("*****系统管理员和审计管理员处理异常日志*******"); } } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysOperLogServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysOperLogServiceImpl.java index f1ffee1..de2864f 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysOperLogServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysOperLogServiceImpl.java @@ -104,7 +104,7 @@ public class SysOperLogServiceImpl implements ISysOperLogService public int addLogs(SysLogsVo sysLogsVo) { if (sysLogsVo.getLogType() == 2) { sysLogsVo.setWarningStatus("0"); - eventPublisher.publishEvent(new WaringLogEvent(new SysWarning(sysLogsVo.getLogId(), sysLogsVo.getErrType(), sysLogsVo.getIp(), sysLogsVo.getOperaUserName(), sysLogsVo.getOperTime()))); + eventPublisher.publishEvent(new WaringLogEvent(new SysWarning(sysLogsVo.getLogId(), sysLogsVo.getErrType(), sysLogsVo.getIp(), sysLogsVo.getOperaUserName(), sysLogsVo.getOperTime(), "0"))); } return operLogMapper.addLogs(sysLogsVo); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/warning/SysWarning.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/warning/SysWarning.java index 9fc24a7..8d6d8a9 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/warning/SysWarning.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/warning/SysWarning.java @@ -7,12 +7,13 @@ import java.util.Date; @Data public class SysWarning { - public SysWarning(String warningId,String warningEvent,String warningIp,String operaUserName,String operaTime ){ + public SysWarning(String warningId,String warningEvent,String warningIp,String operaUserName,String operaTime, String warningStatus){ this.warningId = warningId; this.warningEvent = warningEvent; this.warningIp = warningIp; this.operaUserName = operaUserName; this.operaTime = operaTime; + this.warningStatus = warningStatus; } private String warningId; diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/warning/WebSocketHandler.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/warning/WebSocketHandler.java index 2c3d6bd..4a10cc3 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/warning/WebSocketHandler.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/warning/WebSocketHandler.java @@ -1,6 +1,7 @@ package com.bonus.system.warning; import com.alibaba.fastjson.JSON; +import com.bonus.common.core.utils.SpringUtils; import com.bonus.system.service.ISysLogService; import lombok.extern.slf4j.Slf4j; import org.springframework.context.event.EventListener; @@ -24,9 +25,6 @@ public class WebSocketHandler extends TextWebSocketHandler { private static final Logger logger = LoggerFactory.getLogger(WebSocketHandler.class); private static final CopyOnWriteArrayList sessions = new CopyOnWriteArrayList<>(); - @Resource(name = "ISysLogService") - private ISysLogService logService; - public static void closeSession(WebSocketSession session) throws IOException { session.close(); } @@ -42,7 +40,7 @@ public class WebSocketHandler extends TextWebSocketHandler { String jsonStr = JSON.toJSONString(warning); sendMessageToAll(jsonStr); } catch (Exception e) { - System.out.print("处理日志告警失败"); + logger.error("处理日志告警失败" + event); } } @@ -53,7 +51,7 @@ public class WebSocketHandler extends TextWebSocketHandler { @EventListener public void handleWebSocketConnectListener(SessionConnectedEvent event) { StompHeaderAccessor headerAccessor = StompHeaderAccessor.wrap(event.getMessage()); - System.out.println("WebSocket 连接建立,Session ID: " + headerAccessor.getSessionId()); + logger.debug("WebSocket 连接建立,Session ID: " + headerAccessor.getSessionId()); } /** @@ -63,35 +61,36 @@ public class WebSocketHandler extends TextWebSocketHandler { @EventListener public void handleWebSocketDisconnectListener(SessionDisconnectEvent event) { StompHeaderAccessor headerAccessor = StompHeaderAccessor.wrap(event.getMessage()); - System.out.println("WebSocket 连接断开,Session ID: " + headerAccessor.getSessionId()); + logger.debug("WebSocket 连接断开,Session ID: " + headerAccessor.getSessionId()); } // 处理用户确认消息 @MessageMapping("/alert-handled") public void handleAlert(String alertId) { // 在这里处理告警确认逻辑 - System.out.println("Alert " + alertId + " has been handled"); + logger.debug("Alert " + alertId + " has been handled"); } @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { sessions.add(session); - logger.info("WebSocket 连接成功: " + session.getId()); + logger.debug("WebSocket 连接成功: " + session.getId()); } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { String payload = message.getPayload(); - logger.info("接收到消息: " + payload); + logger.debug("接收到消息: " + payload); + ISysLogService logService = SpringUtils.getBean(ISysLogService.class); logService.updateLogsWithHandledStatus(payload); } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { sessions.remove(session); - logger.info("WebSocket 连接关闭: " + session.getId()); + logger.debug("WebSocket 连接关闭: " + session.getId()); } public void sendMessageToAll(String message) throws Exception { diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysLogMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysLogMapper.xml index dec38b6..f53a129 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysLogMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysLogMapper.xml @@ -270,7 +270,7 @@ SELECT log_id logId, opera_user_name operaUserName,ip, user_id userId, oper_time operTime, - oper_type operType + oper_type operType, err_type errType FROM sys_logs where warning_status=0