diff --git a/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java b/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java index 1ce4bddf..c79a6322 100644 --- a/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java +++ b/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java @@ -137,7 +137,6 @@ public class RouterHandler extends Handler { next.handle(target, req, res, isHandled); return; } - //微服务间的调用视为内部调用 if (req.getServletPath().endsWith("_Internal")) { renderJson(res, new RetBean(RetBean.ERROR, "微服务间内部接口调用,是不需要走网关的!").toString()); @@ -176,7 +175,6 @@ public class RouterHandler extends Handler { return; } } - //路由到哪个微服务 int xie1 = servletPath.indexOf('/'); // 找到第一个 '/' 的索引 int xie2 = servletPath.indexOf('/', xie1 + 1); // 从第一个 '/' 之后开始找第二个 '/' 的索引 @@ -244,10 +242,19 @@ public class RouterHandler extends Handler { } else { builder = new Request.Builder().url(FORWARD_URL); } + + // 处理Authorization头 if (!StrKit.isBlank(req.getHeader("Authorization"))) { builder.addHeader("Authorization", req.getHeader("Authorization")); builder.addHeader("Accept", "application/json;odata=verbose"); } + + // 处理Cookie + String cookie = req.getHeader("Cookie"); + if (!StrKit.isBlank(cookie)) { + builder.addHeader("Cookie", cookie); + } + Request request = builder.build(); try { executeRequest(request, res); @@ -260,7 +267,7 @@ public class RouterHandler extends Handler { } } - //3、处理POST请求 +//3、处理POST请求 if (req.getMethod().equals("POST")) { RequestBody body = createRequestBody(req); Request.Builder builder; @@ -269,10 +276,19 @@ public class RouterHandler extends Handler { } else { builder = new Request.Builder().url(FORWARD_URL); } + + // 处理Authorization头 if (!StrKit.isBlank(req.getHeader("Authorization"))) { builder.addHeader("Authorization", req.getHeader("Authorization")); builder.addHeader("Accept", "application/json;odata=verbose"); } + + // 处理Cookie + String cookie = req.getHeader("Cookie"); + if (!StrKit.isBlank(cookie)) { + builder.addHeader("Cookie", cookie); + } + builder.post(body); Request request = builder.build(); try { diff --git a/dsRes/src/main/java/com/dsideal/resource/Util/SsoUtil.java b/dsRes/src/main/java/com/dsideal/resource/Util/SsoUtil.java deleted file mode 100644 index 41fd7aca..00000000 --- a/dsRes/src/main/java/com/dsideal/resource/Util/SsoUtil.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.dsideal.resource.Util; - -import com.alibaba.fastjson.JSONObject; -import com.jfinal.kit.HttpKit; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -@SuppressWarnings("unchecked") -public class SsoUtil { - - public static String getSessionIdByCookie(HttpServletRequest request, String sessionid) { - String cookieSessionId = getCookieValue(request, sessionid); - return cookieSessionId; - } - - public static Map loginCheck(String sessionId, String ssoServerAddr) { - if (sessionId != null) { - return getLoginMap(sessionId, ssoServerAddr); - } - return null; - } - - /** - * 清除dss_sso_sessionid的cookie - * - * @param request - * @param response - */ - public static void removeSessionIdInCookie(HttpServletRequest request, HttpServletResponse response) { - Cookie[] arrCookie = request.getCookies(); - if (arrCookie != null && arrCookie.length > 0) { - for (Cookie cookie : arrCookie) { - removeCookie(request, response, cookie.getName()); - } - } - - } - - /** - * 将map写入cookie - * - * @param response - * @param map - */ - public static void setCookieMap(HttpServletResponse response, Map map) { - Iterator iter = map.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = (Map.Entry) iter.next(); - String key = entry.getKey().toString(); - String val = entry.getValue().toString(); - setCookie(response, key, val, null, "/", -1, true); - } - } - - private static void removeCookie(HttpServletRequest request, HttpServletResponse response, String key) { - Cookie cookie = getCookie(request, key); - if (cookie != null) { - setCookie(response, key, "", null, "/", 0, true); - } - } - - private static void setCookie(HttpServletResponse response, String key, String value, String domain, String path, int maxAge, boolean isHttpOnly) { - Cookie cookie = new Cookie(key, value); - if (domain != null) { - cookie.setDomain(domain); - } - cookie.setPath(path); - cookie.setMaxAge(maxAge); - //cookie.setHttpOnly(isHttpOnly); - response.addCookie(cookie); - } - - public static String getCookieValue(HttpServletRequest request, String key) { - Cookie cookie = getCookie(request, key); - if (cookie != null) { - return cookie.getValue(); - } - return null; - } - - private static Cookie getCookie(HttpServletRequest request, String key) { - Cookie[] arr_cookie = request.getCookies(); - if (arr_cookie != null && arr_cookie.length > 0) { - for (Cookie cookie : arr_cookie) { - if (cookie.getName().equals(key)) { - return cookie; - } - } - } - return null; - } - - private static Map getLoginMap(String sessionId, String ssoServerAddr) { - - Map loginMap = new HashMap(); - try { - String ssoServerUrl = ssoServerAddr + "/app/loginCheck"; - Map ssoServerUrlParams = new HashMap(); - ssoServerUrlParams.put("sessionId", sessionId); - String strJson = HttpKit.get(ssoServerUrl, ssoServerUrlParams); - JSONObject objJson = JSONObject.parseObject(strJson); - if (objJson.getBoolean("success")) { - loginMap.put("person_id", objJson.getString("personId")); - loginMap.put("bureau_id", objJson.getString("bureauId")); - loginMap.put("identity_id", objJson.getString("identityId")); - loginMap.put("city_id", objJson.getString("city_id")); - loginMap.put("area_id", objJson.getString("area_id")); - loginMap.put("main_person_id", objJson.getString("mainPersonId")); - } else { - loginMap = null; - } - } catch (Exception e) { - loginMap = null; - e.printStackTrace(); - } - return loginMap; - } - - -} - diff --git a/nginx/logs/nginx.pid b/nginx/logs/nginx.pid index 4e18b2f4..6603f206 100644 --- a/nginx/logs/nginx.pid +++ b/nginx/logs/nginx.pid @@ -1 +1 @@ -31916 +23588