Jelajahi Sumber

登录之后回到之前的页面

sunyj 8 tahun lalu
induk
melakukan
40818cf10a

+ 4 - 1
kanban-auth/src/main/java/com/uas/kanban/filter/SecurityInterceptor.java

@@ -1,5 +1,7 @@
 package com.uas.kanban.filter;
 
+import java.net.URLEncoder;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -50,7 +52,8 @@ public class SecurityInterceptor extends HandlerInterceptorAdapter {
 		// session 中不存在登陆信息
 		if (resourcePoint == null) {
 			logger.info("No session for path: " + url + " , redirecting to page: login ...");
-			response.sendRedirect(contextPath + "/login");
+			response.sendRedirect(
+					contextPath + "/login?returnUrl=" + URLEncoder.encode(request.getRequestURL().toString(), "UTF-8"));
 			return false;
 		}
 		if (url.startsWith("/resourcePoint/save") || url.startsWith("/resourcePoint/update")

+ 22 - 1
kanban-console/src/main/webapp/resources/app/controller/login.js

@@ -39,7 +39,28 @@ Ext.define('erp.controller.login', {
 									//设置cookie
 									me.setCookie('username',values.name,'/',14);
 									me.setCookie('password',values.password,'/',14);
-									window.location.reload();
+									
+									/**
+									 * 获取链接参数
+									 * 
+									 * @param key
+									 *            参数的键
+									 * @returns 参数的值
+									 */
+									var getParameter= function(key) {
+										var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
+										var r = window.location.search.substr(1).match(reg);
+										if (r != null)
+											return decodeURI(r[2]);
+										return null;
+									};
+									var returnUrl=getParameter('returnUrl');
+									if(returnUrl && decodeURIComponent(returnUrl) != window.location.href){
+										// 回到登录前的页面
+										window.location.href = decodeURIComponent(returnUrl);
+									}else{
+										window.location.reload();
+									}
 								}
 							}
 						});