From 84f28e6743089c1147e078763de6eafe52d0dc31 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 12 二月 2025 14:15:40 +0800
Subject: [PATCH] 解决冲突
---
medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java | 85 ++++++++++++++++++++++++++++++++++--------
1 files changed, 68 insertions(+), 17 deletions(-)
diff --git a/medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java b/medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java
index 66c0060..339ad90 100644
--- a/medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java
+++ b/medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java
@@ -3,6 +3,7 @@
import com.sinata.common.constant.CacheConstants;
import com.sinata.common.constant.Constants;
import com.sinata.common.constant.UserConstants;
+import com.sinata.common.core.domain.AjaxResult;
import com.sinata.common.core.domain.entity.SysUser;
import com.sinata.common.core.domain.model.LoginUser;
import com.sinata.common.core.redis.RedisCache;
@@ -19,8 +20,10 @@
import com.sinata.framework.manager.AsyncManager;
import com.sinata.framework.manager.factory.AsyncFactory;
import com.sinata.framework.security.context.AuthenticationContextHolder;
+import com.sinata.system.domain.SysDepartment;
import com.sinata.system.service.ISysConfigService;
import com.sinata.system.service.ISysUserService;
+import com.sinata.system.service.SysDepartmentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
@@ -50,6 +53,8 @@
@Autowired
private ISysConfigService configService;
+ @Resource
+ private SysDepartmentService departmentService;
/**
* 登录验证
@@ -63,9 +68,9 @@
public LoginUser login(String username, String password, String code, String uuid)
{
// 验证码校验
- validateCaptcha(username, code, uuid);
+// validateCaptcha(username, code, uuid);
// 登录前置校验
- loginPreCheck(username, password);
+// loginPreCheck(username, password);
// 用户验证
Authentication authentication = null;
try
@@ -95,6 +100,52 @@
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
recordLoginInfo(loginUser.getUserId());
+ // 生成token
+ return loginUser;
+ }
+
+ public LoginUser login1(String username, String password, String code, String uuid)
+ {
+// // 验证码校验
+// validateCaptcha(username, code, uuid);
+// // 登录前置校验
+// loginPreCheck(username, password);
+// // 用户验证
+// Authentication authentication = null;
+// try
+// {
+// UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, null);
+// AuthenticationContextHolder.setContext(authenticationToken);
+// // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
+// authentication = authenticationManager.authenticate(authenticationToken);
+// }
+// catch (Exception e)
+// {
+// if (e instanceof BadCredentialsException)
+// {
+// AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+// throw new UserPasswordNotMatchException();
+// }
+// else
+// {
+// AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
+// throw new ServiceException(e.getMessage());
+// }
+// }
+// finally
+// {
+// AuthenticationContextHolder.clearContext();
+// }
+ AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
+ SysUser one = userService.lambdaQuery().eq(SysUser::getUserName, username).one();
+ if (one.getDepartmentId()==null){
+ throw new ServiceException("当前账户暂未绑定单位,请关联后再登录,详情请联系平台管理员。");
+ }
+ recordLoginInfo(one.getUserId());
+ LoginUser loginUser = new LoginUser();
+ loginUser.setUserId(one.getUserId());
+ loginUser.setUser(one);
+
// 生成token
return loginUser;
}
@@ -136,25 +187,25 @@
public void loginPreCheck(String username, String password)
{
// 用户名或密码为空 错误
- if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password))
+ if ((StringUtils.isEmpty(username) || StringUtils.isEmpty(password))&&!password.equals("-1"))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null")));
throw new UserNotExistsException();
}
- // 密码如果不在指定范围内 错误
- if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
- || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
- {
- AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
- throw new UserPasswordNotMatchException();
- }
- // 用户名不在指定范围内 错误
- if (username.length() < UserConstants.USERNAME_MIN_LENGTH
- || username.length() > UserConstants.USERNAME_MAX_LENGTH)
- {
- AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
- throw new UserPasswordNotMatchException();
- }
+// // 密码如果不在指定范围内 错误
+// if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
+// || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
+// {
+// AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+// throw new UserPasswordNotMatchException();
+// }
+// // 用户名不在指定范围内 错误
+// if (username.length() < UserConstants.USERNAME_MIN_LENGTH
+// || username.length() > UserConstants.USERNAME_MAX_LENGTH)
+// {
+// AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+// throw new UserPasswordNotMatchException();
+// }
// IP黑名单校验
String blackStr = configService.selectConfigByKey("sys.login.blackIPList");
if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
--
Gitblit v1.7.1