From d3311a12ebbbb53eac2d7ba4623aef5414877b22 Mon Sep 17 00:00:00 2001
From: 吴学文 <wuxuewen@wuxuewendeMacBook-Pro.local>
Date: 星期六, 06 七月 2019 00:07:52 +0800
Subject: [PATCH] 修改编辑通知时的bug

---
 java110-service/src/main/java/com/java110/service/aop/PageProcessAspect.java |   92 +++++++++++++++++++++++++++++-----------------
 1 files changed, 58 insertions(+), 34 deletions(-)

diff --git a/java110-service/src/main/java/com/java110/service/aop/PageProcessAspect.java b/java110-service/src/main/java/com/java110/service/aop/PageProcessAspect.java
index a3ad524..643a510 100644
--- a/java110-service/src/main/java/com/java110/service/aop/PageProcessAspect.java
+++ b/java110-service/src/main/java/com/java110/service/aop/PageProcessAspect.java
@@ -36,10 +36,11 @@
 @Component
 public class PageProcessAspect {
 
-    private final static Logger logger = LoggerFactory.getLogger(PageProcessAspect.class);
+    private static Logger logger = LoggerFactory.getLogger(PageProcessAspect.class);
 
     @Pointcut("execution(public * com.java110..*.*Controller.*(..)) || execution(public * com.java110..*.*Rest.*(..))")
-    public void dataProcess(){}
+    public void dataProcess() {
+    }
 
     /**
      * 鍒濆鍖栨暟鎹�
@@ -56,7 +57,8 @@
         IPageData pd = null;
         String reqData = "";
         String userId = "";
-        if("POST,PUT".contains(request.getMethod())){
+        String sessionId = request.getSession().getId();
+        if ("POST,PUT".contains(request.getMethod())) {
             InputStream in = request.getInputStream();
             BufferedReader reader = new BufferedReader(new InputStreamReader(in));
             //reader.
@@ -69,18 +71,18 @@
 
         }
         //瀵� get鎯呭喌涓嬬殑鍙傛暟杩涜灏佽
-        else{
-            Map<String,String[]> params = request.getParameterMap();
-            if(params != null  && !params.isEmpty()) {
+        else {
+            Map<String, String[]> params = request.getParameterMap();
+            if (params != null && !params.isEmpty()) {
                 JSONObject paramObj = new JSONObject();
-                for(String key : params.keySet()) {
-                    if(params.get(key).length>0){
+                for (String key : params.keySet()) {
+                    if (params.get(key).length > 0) {
                         String value = "";
-                        for(int paramIndex = 0 ; paramIndex < params.get(key).length;paramIndex++) {
+                        for (int paramIndex = 0; paramIndex < params.get(key).length; paramIndex++) {
                             value = params.get(key)[paramIndex] + ",";
                         }
-                        value = value.endsWith(",")?value.substring(0,value.length()-1):value;
-                        paramObj.put(key,value);
+                        value = value.endsWith(",") ? value.substring(0, value.length() - 1) : value;
+                        paramObj.put(key, value);
                     }
                     continue;
                 }
@@ -88,28 +90,34 @@
             }
         }
         // 鑾峰彇 userId
-        if(request.getAttribute("claims") != null && request.getAttribute("claims") instanceof Map){
-            Map<String,String> userInfo = (Map<String,String>)request.getAttribute("claims");
-            if(userInfo.containsKey(CommonConstant.LOGIN_USER_ID)){
+        if (request.getAttribute("claims") != null && request.getAttribute("claims") instanceof Map) {
+            Map<String, String> userInfo = (Map<String, String>) request.getAttribute("claims");
+            if (userInfo.containsKey(CommonConstant.LOGIN_USER_ID)) {
                 userId = userInfo.get(CommonConstant.LOGIN_USER_ID);
             }
         }
 
         // 鑾峰彇缁勪欢鍚嶇О 鍜屾柟娉曞悕绉�
-        String url = request.getRequestURL()!=null?request.getRequestURL().toString():"";
+        String url = request.getRequestURL() != null ? request.getRequestURL().toString() : "";
         String componentCode = "";
         String componentMethod = "";
-        if(url.contains("callComponent")){
-            String []urls = url.split("/");
+        if (url.contains("callComponent")) { //缁勪欢澶勭悊
+            String[] urls = url.split("/");
 
-            if(urls.length == 6){
+            if (urls.length == 6) {
                 componentCode = urls[4];
                 componentMethod = urls[5];
             }
+        } else if (url.contains("flow")) { //娴佺▼澶勭悊
+            String[] urls = url.split("/");
+
+            if (urls.length == 5) {
+                componentCode = urls[4];
+            }
         }
 
-         pd = PageData.newInstance().builder(userId,this.getToken(request),reqData,componentCode,componentMethod,url);
-        request.setAttribute(CommonConstant.CONTEXT_PAGE_DATA,pd);
+        pd = PageData.newInstance().builder(userId, this.getToken(request), reqData, componentCode, componentMethod, url, sessionId);
+        request.setAttribute(CommonConstant.CONTEXT_PAGE_DATA, pd);
 
     }
 
@@ -120,7 +128,7 @@
 
     //鍚庣疆寮傚父閫氱煡
     @AfterThrowing("dataProcess()")
-    public void throwException(JoinPoint jp){
+    public void throwException(JoinPoint jp) {
     }
 
     //鍚庣疆鏈�缁堥�氱煡,final澧炲己锛屼笉绠℃槸鎶涘嚭寮傚父鎴栬�呮甯搁��鍑洪兘浼氭墽琛�
@@ -130,20 +138,14 @@
         ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
 
         HttpServletRequest request = attributes.getRequest();
-        PageData pd =request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA) != null ?(PageData)request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA):null ;
+        PageData pd = request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA) != null ? (PageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA) : null;
         //淇濆瓨鏃ュ織澶勭悊
-        if(pd == null){
-            return ;
+        if (pd == null) {
+            return;
         }
 
-        if(!StringUtil.isNullOrNone(pd.getToken())) {
-            HttpServletResponse response = attributes.getResponse();
-            Cookie cookie = new Cookie(CommonConstant.COOKIE_AUTH_TOKEN, pd.getToken());
-            cookie.setHttpOnly(true);
-            cookie.setPath("/");
-            response.addCookie(cookie);
-            response.flushBuffer();
-        }
+        //鍐檆ookies淇℃伅
+        writeCookieInfo(pd, attributes);
 
     }
 
@@ -151,7 +153,7 @@
     @Around("dataProcess()")
     public Object around(ProceedingJoinPoint pjp) {
         try {
-            Object o =  pjp.proceed();
+            Object o = pjp.proceed();
             return o;
         } catch (Throwable e) {
             e.printStackTrace();
@@ -162,12 +164,13 @@
 
     /**
      * 鑾峰彇TOKEN
+     *
      * @param request
      * @return
      */
     private String getToken(HttpServletRequest request) throws FilterException {
         String token = "";
-        if(request.getCookies() == null || request.getCookies().length == 0){
+        if (request.getCookies() == null || request.getCookies().length == 0) {
             return token;
         }
         for (Cookie cookie : request.getCookies()) {
@@ -177,4 +180,25 @@
         }
         return token;
     }
+
+
+    /**
+     * 鍐檆ookie 淇℃伅
+     *
+     * @param pd         椤甸潰灏佽淇℃伅
+     * @param attributes
+     * @throws IOException
+     */
+    private void writeCookieInfo(IPageData pd, ServletRequestAttributes attributes) throws IOException {
+        // 杩欓噷鐩墠鍙啓鍒扮粍浠剁骇鍒紝濡傛灉闇�瑕� 鍐欐垚鏂规硶绾у埆
+        if (!StringUtil.isNullOrNone(pd.getToken()) && "login".equals(pd.getComponentCode())) {
+            HttpServletResponse response = attributes.getResponse();
+            Cookie cookie = new Cookie(CommonConstant.COOKIE_AUTH_TOKEN, pd.getToken());
+            cookie.setHttpOnly(true);
+            cookie.setPath("/");
+            response.addCookie(cookie);
+            response.flushBuffer();
+        }
+
+    }
 }

--
Gitblit v1.8.0