Browse Source

修复登录互踢跳转问题

ting.yin 4 years ago
parent
commit
31d6f0315d

+ 18 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/common/interceptor/SessionInterceptor.java

@@ -56,12 +56,29 @@ public class SessionInterceptor extends HandlerInterceptorAdapter {
             throws IOException {
         StmmsSession session = RequestUtils.getSession(request);
         session.setInvalid(true);
-        response.sendError(HttpServletResponse.SC_UNAUTHORIZED, redirectURI);
         sessionService.put(request, response, session);
         response.sendRedirect(request.getContextPath() + redirectURI);
         return false;
     }
 
+    /**
+     * 强制失效session,执行请求跳转
+     *
+     * @param request
+     * @param response
+     * @param redirectURI
+     * @return
+     * @throws IOException
+     */
+    protected boolean sessionExpireMarker(HttpServletRequest request, HttpServletResponse response, String redirectURI)
+            throws IOException {
+        StmmsSession session = RequestUtils.getSession(request);
+        session.setInvalid(true);
+        response.sendError(HttpServletResponse.SC_UNAUTHORIZED, redirectURI);
+        sessionService.put(request, response, session);
+        return false;
+    }
+
     /**
      * 强制执行请求跳转
      *

+ 3 - 4
stmms-web/src/main/java/cn/com/qmth/stmms/mark/interceptor/MarkInterceptor.java

@@ -25,11 +25,10 @@ public class MarkInterceptor extends SessionInterceptor {
     private MarkerService markerService;
 
     @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
-            throws Exception {
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         WebUser wu = buildUser(request);
         if (wu != null) {
-            if (wu.getUser().getLastLoginTime() == null&& request.getServletPath().startsWith("/mark/reset")) {
+            if (wu.getUser().getLastLoginTime() == null && request.getServletPath().startsWith("/mark/reset")) {
                 // 首次登录,强制重置密码及姓名
                 return true;
             } else if (wu.getMarkerId() == null && !request.getServletPath().startsWith("/mark/subject")) {
@@ -38,7 +37,7 @@ public class MarkInterceptor extends SessionInterceptor {
             }
             return true;
         }
-        return sessionExpire(request, response, "/login");
+        return sessionExpireMarker(request, response, "/login");
     }
 
     private WebUser buildUser(HttpServletRequest request) {

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/mark/markJson.jsp

@@ -41,7 +41,7 @@
 	$(document).ajaxError(function (evt, req, settings) {
 	    if (req.status == 401) {
 	        alert("账号已在其他地方登录!");
-	        window.location.href = req.statusText;
+	        window.location.href = '/login';
 	    }
 	});
 	

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/mark/markNew.jsp

@@ -47,7 +47,7 @@
     $(document).ajaxError(function (evt, req, settings) {
         if (req.status == 401) {
             alert("账号已在其他地方登录!");
-            window.location.href = req.statusText;
+            window.location.href = '/login';
         }
     });
 

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/mark/markTrack.jsp

@@ -40,7 +40,7 @@
     $(document).ajaxError(function (evt, req, settings) {
         if (req.status == 401) {
             alert("账号已在其他地方登录!");
-            window.location.href = req.statusText;
+            window.location.href = '/login';
         }
     });