Prechádzať zdrojové kódy

2.27 - fix: 修改密码的跳转与登出

薛晓波 6 rokov pred
rodič
commit
8c5ce57d4c

+ 3 - 7
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/PageController.java

@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
+import java.io.UnsupportedEncodingException;
 import java.net.URL;
 import java.net.URLDecoder;
 
@@ -264,11 +265,12 @@ public class PageController extends BaseController{
     }
 
     @RequestMapping(value = UrlConstants.PAGE + "update/password", method = RequestMethod.GET)
-    public String updatePassword(Model model, HttpServletRequest request){
+    public String updatePassword(@RequestParam(value = "redirect", required = false)String redirect, Model model, HttpServletRequest request){
         if (request.getSession().getAttribute("userId")==null){
             model.addAttribute("message", "请前往登录后再进行操作");
             return "error_page";
         }
+        userLogic.saveRedirectUrl(redirect, request);
         return "reset_password";
     }
 
@@ -313,10 +315,4 @@ public class PageController extends BaseController{
         model.addAttribute("message", "大侠,系统出现了错误!\n500 Error");
         return "error_page";
     }
-
-
-
-
-
-
 }

+ 2 - 1
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/UserController.java

@@ -124,7 +124,8 @@ public class UserController extends BaseController {
     public ModelAndView setBankInfo(BankAccountInfoVO infoVO, HttpServletRequest request){
         ResponseResult<Object> result = userLogic.setBankInfo(infoVO, request);
         if (result.getStatus()==ResponseStatus.SUCCESS){
-            return new ModelAndView("redirect:"+(String) request.getSession().getAttribute("redirectURL"));
+            // return new ModelAndView("redirect:"+(String) request.getSession().getAttribute("redirectURL"));
+            return new ModelAndView("success_page").addObject("message","银行账户信息上传成功!");
         }
         ModelAndView modelAndView = new ModelAndView("error_page");
         modelAndView.addObject("message", result.getMsg());

+ 2 - 0
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/logic/UserLogic.java

@@ -59,5 +59,7 @@ public interface UserLogic {
 
     ResponseResult<Object> setBankInfo(BankAccountInfoVO infoVO, HttpServletRequest request);
 
+    void saveRedirectUrl(String redirect, HttpServletRequest request);
 
+    Boolean isLogin(HttpServletRequest request);
 }

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

@@ -28,6 +28,9 @@ import org.springframework.stereotype.Service;
 
 import javax.mail.MessagingException;
 import javax.servlet.http.HttpServletRequest;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.sql.Timestamp;
 import java.util.List;
 
@@ -563,9 +566,12 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
             userVO = userVOWrapper.wrap(user);
             userVO.setPassword("");
             userVO.setPassword2("");
-            result.init(ResponseStatus.SUCCESS, "密码修改成功", userVO);
+            String redirectUrl = (String) request.getSession().getAttribute("redirectURL");
+            redirectUrl = URLEncoder.encode(redirectUrl, "UTF-8");
+            result.init(ResponseStatus.SUCCESS, redirectUrl, userVO);
             LOG.info(result.getMsg()+" userId: "+userVO.getId());
             request.getSession().removeAttribute("userId");
+            request.getSession().invalidate();
         } catch (Exception e) {
             result.init(ResponseStatus.FAILED, e.getMessage(), userVO);
             LOG.error(result.getMsg(),e);
@@ -638,5 +644,25 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
         return new ResponseResult<Object>(ResponseStatus.SUCCESS, "上传成功", null);
     }
 
+    @Override
+    public void saveRedirectUrl(String redirect, HttpServletRequest request) {
+        try {
+            redirect = URLDecoder.decode(redirect, "UTF-8");
+            request.getSession().setAttribute("redirectURL", redirect);
+        } catch (UnsupportedEncodingException e) {
+            LOG.info("redirectURL出错", e);
+            if(request.getSession().getAttribute("redirectURL")==null){
+                request.getSession().setAttribute("redirectURL", redirect);
+            }
+        }
+    }
+
+    @Override
+    public Boolean isLogin(HttpServletRequest request) {
+        if (request.getSession().getAttribute("userId")==null)
+            return false;
+        return true;
+    }
+
 
 }

+ 1 - 1
mooctest-user-server/src/main/resources/templates/reset_password.html

@@ -95,7 +95,7 @@
                     document.getElementById("info").innerText = result.msg;
                 }else{
                     alert("修改成功,请前往登录");
-                    document.location.href="/page/login";
+                    document.location.href="/page/login?redirect="+result.msg;
                 }
             }
         })