2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-05-16 60b9e637d693f8d1c3a5dee7cfb8ff8575bf5dac
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java
@@ -3,7 +3,6 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.enums.AdminStatusStatus;
@@ -23,11 +22,16 @@
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.service.*;
import com.sandu.ximon.admin.utils.IPUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
import com.sandu.ximon.dao.bo.MenuNode;
import com.sandu.ximon.dao.domain.*;
import com.sandu.ximon.dao.enums.AdministratorEnums;
import com.sandu.ximon.dao.enums.MenuEnum;
import eu.bitwalker.useragentutils.Browser;
import eu.bitwalker.useragentutils.OperatingSystem;
import eu.bitwalker.useragentutils.UserAgent;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -74,12 +78,12 @@
        if (admin == null) {
            return ResponseUtil.error(ResponseStatusEnums.BAD_CREDENTIALS.getCode(), ResponseStatusEnums.BAD_CREDENTIALS.getMessage());
        }
        String s = RedisUtils.getBean().get(loginParam.getKey());
        if (!loginParam.getVlue().equals(s)) {
            log.error(loginParam.getVlue() + "验证码");
            return ResponseUtil.error(ResponseStatusEnums.BAD_AUTHENTICATION.getCode(), ResponseStatusEnums.BAD_AUTHENTICATION.getMessage());
        }
        RedisUtils.getBean().delete(loginParam.getKey());
//        String s = RedisUtils.getBean().get(loginParam.getKey());
//        if (!loginParam.getVlue().equals(s)) {
//            log.error(loginParam.getVlue() + "验证码");
//            return ResponseUtil.error(ResponseStatusEnums.BAD_AUTHENTICATION.getCode(), ResponseStatusEnums.BAD_AUTHENTICATION.getMessage());
//        }
//        RedisUtils.getBean().delete(loginParam.getKey());
        if (!passwordEncoder.matches(loginParam.getPassword(), admin.getPassword())) {
            return ResponseUtil.error(ResponseStatusEnums.BAD_CREDENTIALS.getCode(), ResponseStatusEnums.BAD_CREDENTIALS.getMessage());
        }
@@ -121,6 +125,13 @@
            put("token", properties.getTokenStartWith() + token);
            put("user", admin);
        }};
        //保存登录信息到日志
        UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
        Browser browser = userAgent.getBrowser();
        OperatingSystem os = userAgent.getOperatingSystem();
        String content = "登录IP地址:" + IPUtils.getPublicIp() + ",操作系统:" + os + ",浏览器:" + browser;
        StoreOperationRecordsUtils.storeOperationData(null, null, "用户登录", content, null);
        return ResponseUtil.success(authInfo);
    }
@@ -168,6 +179,8 @@
    @GetMapping(value = "/logout")
    public ResponseVO<Object> LogOut() {
        String content = "用户名:" + SecurityUtils.getUsername();
        StoreOperationRecordsUtils.storeOperationData(null, null, "用户退出登录", content, null);
        String key = String.format("%d_%d", SecurityUtils.getUserDetails().getUserId(), SecurityUtils.getUserDetails().getAdministratorType());
        redisService.set(key, null);
        return ResponseUtil.success("退出登录成功");