Explorar el Código

MOD: login By Mobile&Password

zhangxin hace 8 años
padre
commit
d2b96bd514

+ 2 - 2
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/configure/realm/ShiroRealm.java

@@ -109,8 +109,8 @@ public class ShiroRealm extends AuthorizingRealm {
                 throw new IncorrectCredentialsException();
             }
             return new SimpleAuthenticationInfo(username, upToken.getPassword(), getName());
-        }else if(loginType.equals("email")){
-            User user = userService.findByEmail(username);
+        }else if(loginType.equals("email&mobile")){
+            User user = userService.findByUsername(username);
             // Null username is invalid
             if (user == null) {
                 throw new AccountException("Null usernames are not allowed by this realm.");

+ 6 - 4
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/TestController.java

@@ -24,7 +24,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-import sun.misc.Request;
 
 import javax.servlet.http.HttpSession;
 
@@ -66,7 +65,7 @@ public class TestController {
         }
         DefaultUsernamepasswordToken token = new DefaultUsernamepasswordToken(username,
                 EncryptionUtil.encryptMD5(userVO.getPassword()));
-        token.setLoginType("email");
+        token.setLoginType("email&mobile");
 //        token.setRememberMe(true);
         //获取当前的Subject
         Subject currentUser = SecurityUtils.getSubject();
@@ -97,9 +96,12 @@ public class TestController {
         //验证是否登录成功
         if (currentUser.isAuthenticated()) {
             System.out.println("用户[" + username + "]登录认证通过(这里可以进行一些认证通过后的一些系统参数初始化操作)");
-            userVO = userLogic.findUserByEmail(userVO.getEmail());
+            if (userVO.getEmail() != null){
+                userVO = userLogic.findUserByEmail(userVO.getEmail());
+            } else if (userVO.getMobile() != null){
+                userVO = userLogic.findUserByMobile(userVO.getMobile());
+            }
             User user = userVOWrapper.unwrap(userVO);
-            userVO.setPassword("");
             userVO.setMenuVOs(menuLogic.getMenuListByUserId(user.getId()));
             currentUser.getSession().setAttribute("User", user);
             return userVO;

+ 0 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/UserVOWrapper.java

@@ -17,7 +17,6 @@ public class UserVOWrapper extends BaseWrapper<UserVO, User> {
 
         userVO.setCreateTime(user.getCreateTime().getTime());
         userVO.setId(user.getId());
-        userVO.setPassword(user.getPassword());
         userVO.setEmail(user.getEmail());
         userVO.setMobile(user.getMobile());
         userVO.setName(user.getName());

+ 2 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/UserLogic.java

@@ -1,6 +1,5 @@
 package cn.iselab.mooctest.site.web.logic;
 
-import cn.iselab.mooctest.site.models.User;
 import cn.iselab.mooctest.site.web.data.ManagerPropertyVO;
 import cn.iselab.mooctest.site.web.data.UserVO;
 
@@ -35,4 +34,6 @@ public interface UserLogic {
     void approveofManager(Long userId);
 
     UserVO registerForOauth2(UserVO userVO);
+
+    UserVO findUserByMobile(String mobile);
 }

+ 7 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/UserLogicImpl.java

@@ -129,7 +129,7 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
             UserVO uv = Converter.copy(userVO, userService.updateUser(user));
             uv.setPassword("");
             return uv;
-        }else{
+        } else {
             throw new HttpBadRequestException("Verification error");
         }
     }
@@ -242,4 +242,10 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
 
         return userVOWrapper.wrap(user);
     }
+
+    @Override
+    public UserVO findUserByMobile(String mobile) {
+        return userVOWrapper.wrap(userService.findByMobile(mobile));
+    }
 }
+