rk
2026-01-28 96fb28f4813edd207161769f03967b37d02f0207
server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -10,6 +10,7 @@
import com.doumee.service.system.SystemLoginLogService;
import com.doumee.service.system.SystemLoginService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
@@ -27,6 +28,11 @@
    @Value("${project.version}")
    private String systemVersion;
    /**
     *   # 环境,生产环境production,开发环境development
     */
    @Value("${project.env}")
    private String projectEnv;
    @Autowired
    private CaptchaService captchaService;
@@ -46,15 +52,17 @@
        loginLog.setClientInfo(Utils.User_Client.getBrowser(request));
        loginLog.setOsInfo(Utils.User_Client.getOS(request));
        loginLog.setServerIp(Utils.Server.getIP());
        // 校验验证码
        try {
            captchaService.check(dto.getUuid(), dto.getCode());
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage());
            loginLog.setSuccess(Boolean.FALSE);
            systemLoginLogService.create(loginLog);
            throw e;
        if(StringUtils.equals(projectEnv,"development")){
            // 校验验证码
            try {
                captchaService.check(dto.getUuid(), dto.getCode());
            } catch (Exception e) {
                log.error(e.getMessage(), e);
                loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage());
                loginLog.setSuccess(Boolean.FALSE);
                systemLoginLogService.create(loginLog);
                throw e;
            }
        }
        // 校验用户名和密码
        Subject subject = SecurityUtils.getSubject();