From 5a55c686bcb4fac8ba9d3fd96677b0c0397117bb Mon Sep 17 00:00:00 2001 From: lbay Date: Fri, 24 Nov 2017 15:41:22 +0800 Subject: [PATCH] =?UTF-8?q?https://github.com/uavorg/uavstack/issues/77=20?= =?UTF-8?q?----Apphub=20user=20behavior=20record=20add=20info---=20?= =?UTF-8?q?=E6=88=91=E4=BB=AC=E9=9C=80=E8=A6=81=E4=B8=80=E4=BB=BD=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?Apphub=E6=8E=88=E6=9D=83=E7=9A=84=E9=82=AE=E7=AE=B1=E7=BB=84?= =?UTF-8?q?=E5=88=97=E8=A1=A8=201=E3=80=81=E5=9C=A8=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=8E=88=E6=9D=83=E6=97=B6=EF=BC=9A=E4=B8=B0?= =?UTF-8?q?=E5=AF=8C=E7=94=A8=E6=88=B7session=E5=AD=97=E6=AE=B5\=E5=86=85?= =?UTF-8?q?=E5=AE=B9=EF=BC=9A=E7=94=A8=E6=88=B7=E5=8C=B9=E9=85=8D=E7=9A=84?= =?UTF-8?q?=E8=A2=AB=E6=8E=88=E6=9D=83=E7=9A=84=E9=82=AE=E7=AE=B1=E7=BB=84?= =?UTF-8?q?=E5=92=8C=E7=B3=BB=E7=BB=9F=E5=88=97=E8=A1=A8=202=E3=80=81?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A1=8C=E4=B8=BA=E6=97=A5=E5=BF=97=EF=BC=88?= =?UTF-8?q?ulog=EF=BC=89=E4=B8=B0=E5=AF=8C=E5=AD=97=E6=AE=B5=E3=80=81JS?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8F=98=E9=87=8F=EF=BC=88=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=90=8C=E6=A0=B7=E5=8F=AF=E4=BB=A5=E8=8E=B7=E5=8F=96=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=EF=BC=89=E4=B8=B0?= =?UTF-8?q?=E5=AF=8C=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ----- fix Apphub ajax assembly params not default---- 1、apphub ajax contentType 添加默认类型:application/json; charset=UTF-8 2、原因描述:开启重调用链后,mof会对rs接口进行拦截处理,对没有定义上传参数的ajax提交请求,会使用默认处理。从而导致与rs接口不匹配,最终报错。 --- .../uav/apphub/filter/SessionAsyncFilter.java | 6 +- .../uav/apphub/rest/GUIService.java | 70 ++++++++++++++++++- .../main/webapp/apphub/js/common/helper.js | 2 +- 3 files changed, 74 insertions(+), 4 deletions(-) diff --git a/com.creditease.uav.console/src/main/java/com/creditease/uav/apphub/filter/SessionAsyncFilter.java b/com.creditease.uav.console/src/main/java/com/creditease/uav/apphub/filter/SessionAsyncFilter.java index 6410a36a..62acaaf9 100644 --- a/com.creditease.uav.console/src/main/java/com/creditease/uav/apphub/filter/SessionAsyncFilter.java +++ b/com.creditease.uav.console/src/main/java/com/creditease/uav/apphub/filter/SessionAsyncFilter.java @@ -263,7 +263,11 @@ private void userLoggerInfo(HttpServletRequest request) { userInfo.put("type", actiontype); userInfo.put("url", actionurl); userInfo.put("desc", actiondesc); - + userInfo.put("authemails", String + .valueOf(request.getSession(false).getAttribute("apphub.gui.session.login.user.authorize.emailList"))); + userInfo.put("authsystems", String + .valueOf(request.getSession(false).getAttribute("apphub.gui.session.login.user.authorize.systems"))); + logger.info(this, JSONHelper.toString(userInfo)); } diff --git a/com.creditease.uav.console/src/main/java/com/creditease/uav/apphub/rest/GUIService.java b/com.creditease.uav.console/src/main/java/com/creditease/uav/apphub/rest/GUIService.java index df31d2a1..930f8e4d 100644 --- a/com.creditease.uav.console/src/main/java/com/creditease/uav/apphub/rest/GUIService.java +++ b/com.creditease.uav.console/src/main/java/com/creditease/uav/apphub/rest/GUIService.java @@ -169,11 +169,17 @@ public String loadTemp(@QueryParam("tempName") String tempName) throws Exception if (null != userId) { Object userGroup = null == session ? null : session.getAttribute("apphub.gui.session.login.user.group"); Object emailList = null == session ? null : session.getAttribute("apphub.gui.session.login.user.emailList"); + Object emailAuthList = null == session ? null + : session.getAttribute("apphub.gui.session.login.user.authorize.emailList"); + Object systemAuthList = null == session ? null + : session.getAttribute("apphub.gui.session.login.user.authorize.systems"); + /** * 模板中,自动填充登录用户信息:模板内spa页面可以获取此资源; */ String userJs = ""; + + "','emailList':'" + emailList + "','emailAuthList':'" + emailAuthList + "','systemAuthList':'" + + systemAuthList + "'};"; tempHtml.append(userJs); } @@ -221,6 +227,10 @@ else if (loginRegister(loginId, loginPwd, request)) { userInfo.put("type", "login"); userInfo.put("url", ""); userInfo.put("desc", "登录成功"); + userInfo.put("uauthemails", String.valueOf( + request.getSession(false).getAttribute("apphub.gui.session.login.user.authorize.emailList"))); + userInfo.put("authsystems", String.valueOf( + request.getSession(false).getAttribute("apphub.gui.session.login.user.authorize.systems"))); logger.info(this, JSONHelper.toString(userInfo)); return createResponeJson(RespCode.SUCCESS, "", ""); @@ -259,7 +269,11 @@ public void loginOut() { userInfo.put("rs", "/rs/gui/loginOut"); userInfo.put("type", "logout"); userInfo.put("url", ""); - userInfo.put("desc", "登录成功"); + userInfo.put("desc", "登出成功"); + userInfo.put("uauthemails", String.valueOf( + request.getSession(false).getAttribute("apphub.gui.session.login.user.authorize.emailList"))); + userInfo.put("authsystems", String.valueOf( + request.getSession(false).getAttribute("apphub.gui.session.login.user.authorize.systems"))); logger.info(this, JSONHelper.toString(userInfo)); // 销毁会话 @@ -393,6 +407,7 @@ protected boolean loginRegister(String loginId, String loginPwd, HttpServletRequ session.setAttribute("apphub.gui.session.login.user.id", userInfo.get("loginId")); session.setAttribute("apphub.gui.session.login.user.group", userInfo.get("groupId")); session.setAttribute("apphub.gui.session.login.user.emailList", userInfo.get("emailList")); + setUAuthInfoToSession(); return true; } else { @@ -758,5 +773,56 @@ public int compare(Map o1, Map o2) { }); return jsonArray; } + + /** + * 设置会话:用户授权邮箱组 + */ + @SuppressWarnings("unchecked") + private void setUAuthInfoToSession() { + + // 用户信息会话创建,信息保存 + HttpSession session = request.getSession(false); + + String[] emailList = String + .valueOf(request.getSession(false).getAttribute("apphub.gui.session.login.user.emailList")).split(","); + if ("UAV.ADMIN.EMAIL.LIST".equals(emailList[0])) { + session.setAttribute("apphub.gui.session.login.user.authorize.emailList", "UAV.ADMIN.EMAIL.LIST"); + session.setAttribute("apphub.gui.session.login.user.authorize.systems", "UAV.ADMIN.SYSTEMS"); + return; + } + + // 用户邮箱组权限 + StringBuilder emailLists = new StringBuilder(); + // 用户系统权限 + StringBuilder systems = new StringBuilder(); + + for (String e : emailList) { + Map esistsMap = cm.getHash("apphub.app.godeye.filter.cache", "email.list.group", e); + if (esistsMap.get(e) != null) { + Map emailMap = JSONHelper.toObject(esistsMap.get(e), Map.class);// 因为嵌套了一层,还需要再取一次 + if (!"1".equals(String.valueOf(emailMap.get("state")))) { // 状态为可用 + continue; + } + if (emailLists.length() > 0) { + emailLists.append(","); + } + emailLists.append(String.valueOf(emailMap.get("emailListName"))); + + /** + * 系统组获取 + */ + if (systems.length() > 0) { + systems.append(","); + } + Map groups = JSONHelper.toObject(String.valueOf(emailMap.get("groupList")), Map.class);// 因为嵌套了一层,还需要再取一次 + systems.append(groups.keySet().toString().substring(1, groups.keySet().toString().length() - 1)); + + } + } + + session.setAttribute("apphub.gui.session.login.user.authorize.emailList", emailLists.toString()); + session.setAttribute("apphub.gui.session.login.user.authorize.systems", systems.toString()); + + } } diff --git a/com.creditease.uav.console/src/main/webapp/apphub/js/common/helper.js b/com.creditease.uav.console/src/main/webapp/apphub/js/common/helper.js index 2865d8b3..96d163ad 100644 --- a/com.creditease.uav.console/src/main/webapp/apphub/js/common/helper.js +++ b/com.creditease.uav.console/src/main/webapp/apphub/js/common/helper.js @@ -639,7 +639,7 @@ var AjaxHelper={ cache:cfg.cache, data:cfg.data, dataType:cfg.dataType, - contentType:cfg.contentType, + contentType:(typeof(value)=="undefined"?"application/json; charset=UTF-8":cfg.contentType), beforeSend:function () { timeOutId = setTimeout(function(){PageHelper.showLoading();},1000); },