shuzheng 9 лет назад
Родитель
Сommit
7d66950e72

+ 22 - 12
zheng-upms/zheng-upms-server/src/main/java/com/zheng/upms/admin/controller/SSOController.java

@@ -2,9 +2,6 @@ package com.zheng.upms.admin.controller;
 
 import com.zheng.common.util.CookieUtil;
 import com.zheng.common.util.RedisUtil;
-import com.zheng.common.util.SpringContextUtil;
-import com.zheng.upms.dao.mapper.UpmsSystemMapper;
-import com.zheng.upms.dao.model.UpmsSystem;
 import com.zheng.upms.dao.model.UpmsSystemExample;
 import com.zheng.upms.rpc.api.UpmsSystemService;
 import org.apache.commons.lang.StringUtils;
@@ -20,10 +17,11 @@ import redis.clients.jedis.Jedis;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import java.lang.reflect.Method;
 import java.net.URLEncoder;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
 
 /**
  * 单点登录管理
@@ -116,17 +114,27 @@ public class SSOController {
 	 * @return
 	 */
 	@RequestMapping(value = "/login", method = RequestMethod.POST)
-	public String login(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) {
+	@ResponseBody
+	public Object login(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) {
 		String backurl = request.getParameter("backurl");
 		String username = request.getParameter("username");
 		String password = request.getParameter("password");
+
+		Map result = new HashMap<>();
+		String data = "";
 		if (StringUtils.isEmpty(username)) {
-			_log.info("帐号不能为空!");
-			return "/404";
+			data = "帐号不能为空!";
+			_log.info("{}", data);
+			result.put("result", false);
+			result.put("data", data);
+			return result;
 		}
 		if (StringUtils.isEmpty(password)) {
-			_log.info("密码不能为空!");
-			return "/404";
+			data = "密码不能为空!";
+			_log.info("{}", data);
+			result.put("result", false);
+			result.put("data", data);
+			return result;
 		}
 		// 分配单点登录sessionId,不使用session获取会话id,改为cookie,防止session丢失
 		String sessionId = CookieUtil.getCookie(request, ZHENG_UPMS_SSO_SERVER_SESSION_ID);
@@ -148,7 +156,9 @@ public class SSOController {
 			redirectUrl += "?token=" + token;
 		}
 		_log.info("认证中心帐号通过,带token回跳:{}", redirectUrl);
-		return "redirect:" + redirectUrl;
+		result.put("result", true);
+		result.put("data", redirectUrl);
+		return result;
 	}
 
 	/**

+ 28 - 5
zheng-upms/zheng-upms-server/src/main/webapp/WEB-INF/jsp/sso/login.jsp

@@ -20,17 +20,16 @@
 </head>
 <body>
 <div id="login-window">
-    <form id="login_form" method="post">
     <div class="input-group m-b-20">
         <span class="input-group-addon"><i class="zmdi zmdi-account"></i></span>
         <div class="fg-line">
-            <input type="text" class="form-control" name="username" placeholder="帐号">
+            <input id="username" type="text" class="form-control" name="username" placeholder="帐号" required>
         </div>
     </div>
     <div class="input-group m-b-20">
         <span class="input-group-addon"><i class="zmdi zmdi-male"></i></span>
         <div class="fg-line">
-            <input type="password" class="form-control" name="password" placeholder="密码">
+            <input id="password" type="password" class="form-control" name="password" placeholder="密码" required>
         </div>
     </div>
     <div class="clearfix">
@@ -42,13 +41,37 @@
             自动登录
         </label>
     </div>
-    <a id="login-bt" href="javascript:;" class="waves-effect waves-button waves-float" onclick="document.getElementById('login_form').submit();"><i class="zmdi zmdi-arrow-forward"></i></a>
-    </form>
+    <a id="login-bt" href="javascript:;" class="waves-effect waves-button waves-float"><i class="zmdi zmdi-arrow-forward"></i></a>
 </div>
 <script src="${basePath}/resources/zheng-admin/plugins/jquery.1.12.4.min.js"></script>
 <script src="${basePath}/resources/zheng-admin/plugins/bootstrap-3.3.0/js/bootstrap.min.js"></script>
 <script src="${basePath}/resources/zheng-admin/plugins/waves-0.7.5/waves.min.js"></script>
 
 <script src="${basePath}/resources/zheng-admin/js/login.js"></script>
+<script>
+    $(function() {
+        $('#login-bt').click(function() {
+            $.ajax({
+                url: '${basePath}/sso/login',
+                type: 'POST',
+                data: {
+                    username: $('#username').val(),
+                    password: $('#password').val(),
+                    backurl: '${param.backurl}'
+                },
+                success: function(json){
+                    if (json.result) {
+                        location.href = json.data;
+                    } else {
+                        alert(json.data);
+                    }
+                },
+                error: function(error){
+                    console.log(error);
+                }
+            });
+        });
+    });
+</script>
 </body>
 </html>

+ 3 - 1
zheng-upms/zheng-upms-sso-client/src/main/java/com/zheng/upms/sso/client/filter/SSOFilter.java

@@ -102,7 +102,9 @@ public class SSOFilter implements Filter {
                                     }
                                 }
                             }
-                            backUrl = backUrl.append("?").append(params);
+                            if (!StringUtils.isEmpty(params)) {
+                                backUrl = backUrl.append("?").append(params);
+                            }
                             // 返回请求资源
                             response.sendRedirect(backUrl.toString());
                             return;