deason před 5 roky
rodič
revize
67f6a29cb2

+ 1 - 4
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/Auth2Controller.java

@@ -47,7 +47,6 @@ public class Auth2Controller extends ControllerSupport {
 	 *
 	 * @author WANGWEI
 	 * @param loginName
-	 * @param password
 	 * @return
 	 */
 	@Naked
@@ -66,8 +65,6 @@ public class Auth2Controller extends ControllerSupport {
 	 * @author WANGWEI
 	 * @param rootOrgId
 	 * @param loginName
-	 * @param password
-	 * @return
 	 */
 	@Naked
 	@WithoutStackTrace(true)
@@ -116,7 +113,7 @@ public class Auth2Controller extends ControllerSupport {
 		loginInfo.setAccountValue(user.getLoginName());
 		loginInfo.setPassword(password);
 		loginInfo.setRootOrgId(user.getRootOrgId());
-		User loginUser = authService.login(loginInfo);
+		User loginUser = authService.login(loginInfo, false);
 
 		Map<String, Object> ret = Maps.newHashMap();
 		ret.put("userId", loginUser.getUserId());

+ 2 - 2
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/AuthController.java

@@ -35,7 +35,7 @@ import io.swagger.annotations.ApiOperation;
 /**
  * {@link StatusException} 状态码范围:002XXX<br>
  * {@link ApiId}范围: 200-299<br>
- * 
+ *
  * 鉴权
  *
  * @author WANGWEI
@@ -87,7 +87,7 @@ public class AuthController extends ControllerSupport {
 			loginInfo.setClientIp(null);
 		}
 
-		User user = authService.login(loginInfo);
+		User user = authService.login(loginInfo, true);
 		// 在线数据打点 start
 		if (UserType.STUDENT.equals(user.getUserType())) {
 			// 在线学生登录打点

+ 1 - 1
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/AuthService.java

@@ -21,7 +21,7 @@ public interface AuthService {
 	 * @param loginInfo
 	 * @return
 	 */
-	User login(LoginInfo loginInfo);
+	User login(LoginInfo loginInfo, boolean checkLoginRule);
 
 	/**
 	 * 用户登录

+ 9 - 7
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/AuthServiceImpl.java

@@ -83,7 +83,7 @@ public class AuthServiceImpl implements AuthService {
     SmsCodeService smsCodeService;
 
     @Override
-    public User login(LoginInfo loginInfo) {
+    public User login(LoginInfo loginInfo, boolean checkLoginRule) {
         String accountType = loginInfo.getAccountType();
         String accountValue = loginInfo.getAccountValue();
         String password = loginInfo.getPassword();
@@ -223,10 +223,12 @@ public class AuthServiceImpl implements AuthService {
             }
 
         } else {
-            // 是否在登录的白名单
-            boolean isWhite = loginRuleService.isLoginRuleWhite(rootOrgId);
-            if (!isWhite) {
-                throw new StatusException("500403", "当前机构登录被禁用");
+            if (checkLoginRule) {
+                // 是否在登录的白名单
+                boolean isWhite = loginRuleService.isLoginRuleWhite(rootOrgId);
+                if (!isWhite) {
+                    throw new StatusException("500403", "当前机构登录被禁用");
+                }
             }
 
             // 学生学号登录
@@ -561,7 +563,7 @@ public class AuthServiceImpl implements AuthService {
         loginInfo.setRootOrgId(rootOrgId);
         loginInfo.setPassword(userEntity.getPassword());
 
-        return login(loginInfo);
+        return login(loginInfo, false);
     }
 
     /**
@@ -680,7 +682,7 @@ public class AuthServiceImpl implements AuthService {
         loginInfo.setRootOrgId(rootOrgId);
         loginInfo.setPassword(student.getPassword());
 
-        return login(loginInfo);
+        return login(loginInfo, false);
     }
 
     @Override

+ 1 - 1
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/VerifyCodeServiceImpl.java

@@ -118,7 +118,7 @@ public class VerifyCodeServiceImpl implements VerifyCodeService {
         loginInfo.setAccountValue(info.getAccountValue());
         loginInfo.setPassword(info.getPassword());
         loginInfo.setClientIp(info.getClientIp());
-        User user = authService.login(loginInfo);
+        User user = authService.login(loginInfo, false);
 
         redisClient.delete(cacheKeyVerifyCode);
         redisClient.delete(cacheKeyVerifyCodeResource);