Browse Source

Merge branch 'userInfo-captcha' into 'DEV'

MOD: userVO and verify captcha or summer captcha

MOD: userVO and verify captcha or summer captcha

See merge request !64

LiHaoyu 8 years ago
parent
commit
755f4eff46

+ 5 - 4
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/UserController.java

@@ -8,6 +8,7 @@ import cn.iselab.mooctest.site.web.logic.impl.UserLogicImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
@@ -19,13 +20,13 @@ public class UserController {
     @Autowired
     UserLogic userLogic;
 
-    @RequestMapping(value = "/api/user", method = RequestMethod.PUT)
+    @RequestMapping(value = UrlConstants.API+ "user", method = RequestMethod.PUT)
     public UserVO updateUserInfo(@RequestBody UserVO userVO) {
         return userLogic.updateUser(userVO);
     }
 
-    @RequestMapping(value = "/api/user/password", method = RequestMethod.PUT)
-    public UserVO updateUserPassword(@RequestBody UserVO userVO) {
-        return userLogic.updateUserPassword(userVO);
+    @RequestMapping(value = UrlConstants.API+ "user/password", method = RequestMethod.PUT)
+    public UserVO updateUserPassword(@RequestBody UserVO userVO,HttpServletRequest request) {
+        return userLogic.updateUserPassword(userVO,request);
     }
 }

+ 10 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/UserVO.java

@@ -27,6 +27,8 @@ public class UserVO extends BaseVO{
 
     private String userName;
 
+    private String captcha;
+
     public String getName() {
         return name;
     }
@@ -87,4 +89,12 @@ public class UserVO extends BaseVO{
         this.userName=userName;
     }
     public String getUserName(){ return this.userName;}
+
+    public void setCaptcha(String captcha){
+        this.captcha=captcha;
+    }
+
+    public String getCaptcha(){
+        return this.captcha;
+    }
 }

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

@@ -2,6 +2,8 @@ package cn.iselab.mooctest.site.web.logic;
 
 import cn.iselab.mooctest.site.web.data.UserVO;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * @author sean
  * @date 2017-06-13.
@@ -11,7 +13,7 @@ public interface UserLogic {
     UserVO register(UserVO userVO);
     UserVO findUserById(Long userId);
     UserVO updateUser(UserVO userVO);
-    UserVO updateUserPassword(UserVO userVO);
+    UserVO updateUserPassword(UserVO userVO,HttpServletRequest request);
     UserVO findUserByEmail(String email);
 
     void deleteRepeatedUser(String email);

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

@@ -11,11 +11,13 @@ import cn.iselab.mooctest.site.web.data.wrapper.UserVOWrapper;
 import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
 import cn.iselab.mooctest.site.web.logic.BaseLogic;
 import cn.iselab.mooctest.site.web.logic.UserLogic;
+import cn.iselab.mooctest.site.web.util.CaptchaUtils;
 import cn.iselab.mooctest.site.web.util.Converter;
 import org.apache.commons.validator.routines.EmailValidator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletRequest;
 import java.sql.Timestamp;
 
 /**
@@ -93,11 +95,15 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
     }
 
     @Override
-    public UserVO updateUserPassword(UserVO userVO) {
-        User user = userService.findByUserId(userVO.getId());
-        String password = EncryptionUtil.encryptMD5(userVO.getPassword());
-        user.setPassword(password);
-        return Converter.copy(userVO, userService.updateUser(user));
+    public UserVO updateUserPassword(UserVO userVO,HttpServletRequest request) {
+        if ((userVO.getCaptcha().equals("summer")) || (!CaptchaUtils.verifyPictureCaptcha(request, userVO.getCaptcha()))) {
+            User user = userService.findByUserId(userVO.getId());
+            String password = EncryptionUtil.encryptMD5(userVO.getPassword());
+            user.setPassword(password);
+            return Converter.copy(userVO, userService.updateUser(user));
+        }else{
+            throw new HttpBadRequestException("Captcha error");
+        }
     }
 
 

+ 1 - 1
mooctest-site-server/src/test/java/cn/iselab/mooctest/site/web/ctrl/UserControllerTest.java

@@ -45,7 +45,7 @@ public class UserControllerTest {
         UserVO userVO=new UserVO();
         userVO.setId(123L);
         userVO.setPassword("123456789");
-        when(userLogic.updateUserPassword(userVO)).thenReturn(userVO);
+        when(userLogic.updateUserPassword(userVO,null)).thenReturn(userVO);
 
         JSONObject input=new JSONObject();
         input.put("id",123L);