Selaa lähdekoodia

租户端和平台端登录分离逻辑

qh 2 vuotta sitten
vanhempi
commit
040e5cfc1f

+ 23 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java

@@ -70,10 +70,19 @@ public class LoginController {
 
 	private final String BASE_CHECK_CODES = "qwertyuiplkjhgfdsazxcvbnmQWERTYUPLKJHGFDSAZXCVBNM1234567890";
 
+	// 租户端header key
+	private  final  String TENANT_KEY = "XPLSOspYuisBnjKcYQZmGpq";
+	// 平台端header key
+	private  final  String PLATFORM_KEY = "XPLSOspYuisBnjKcYQZmGpq=====";
 	@ApiOperation("登录接口")
 	@RequestMapping(value = "/login", method = RequestMethod.POST)
-	public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel){
+	public Result<JSONObject> login(@RequestHeader(value = "Auth") String auth, @RequestBody SysLoginModel sysLoginModel){
 		Result<JSONObject> result = new Result<JSONObject>();
+		if(auth == null || !auth.equals(TENANT_KEY) || !auth.equals(PLATFORM_KEY)) {
+			result.error500("未知的请求来源");
+			return result;
+		}
+
 		String username = sysLoginModel.getUsername();
 		String password = sysLoginModel.getPassword();
 		//update-begin--Author:scott  Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
@@ -109,6 +118,19 @@ public class LoginController {
 		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
 		queryWrapper.eq(SysUser::getUsername,username);
 		SysUser sysUser = sysUserService.getOne(queryWrapper);
+		// 标记租户端用户登录
+		if(auth.equals(TENANT_KEY)){
+			if(sysUser.getRelTenantIds() == null || sysUser.getRelTenantIds().isEmpty()){
+				result.error500("用户名或密码错误");
+				return result;
+			}
+			// 标记平台端登录
+		} else if(auth.equals(PLATFORM_KEY)) {
+			if(sysUser.getRelTenantIds() != null && !sysUser.getRelTenantIds().isEmpty()){
+				result.error500("用户名或密码错误");
+				return result;
+			}
+		}
 		//update-end-author:wangshuai date:20200601 for: 登录代码验证用户是否注销bug,if条件永远为false
 		result = sysUserService.checkUserIsEffective(sysUser);
 		if(!result.isSuccess()) {