瀏覽代碼

网关层改为 URI 判断是哪一个端

weiximei 6 年之前
父節點
當前提交
cdf938089f

+ 40
- 0
CODE/smart-community/zuul/src/main/java/com/community/huiju/constant/RequestURI.java 查看文件

1
+package com.community.huiju.constant;
2
+
3
+/**
4
+ * 请求定义
5
+ * @author weiximei
6
+ */
7
+public enum RequestURI {
8
+
9
+    APP_API("/app-api", "APP端请求路径"),
10
+
11
+    OPERATE_API("/operate-api", "运营端请求路径"),
12
+
13
+    PROPERTY_API("/property-api", "物业端请求路径");
14
+
15
+
16
+    RequestURI(String url, String comment) {
17
+        this.url = url;
18
+        this.comment = comment;
19
+    }
20
+
21
+    private String url;
22
+
23
+    private String comment;
24
+
25
+    public String getUrl() {
26
+        return url;
27
+    }
28
+
29
+    public void setUrl(String url) {
30
+        this.url = url;
31
+    }
32
+
33
+    public String getComment() {
34
+        return comment;
35
+    }
36
+
37
+    public void setComment(String comment) {
38
+        this.comment = comment;
39
+    }
40
+}

+ 15
- 10
CODE/smart-community/zuul/src/main/java/com/community/huiju/filter/DomainZuulPostFilter.java 查看文件

5
 import com.community.commom.mode.ResponseBean;
5
 import com.community.commom.mode.ResponseBean;
6
 import com.community.commom.session.UserElement;
6
 import com.community.commom.session.UserElement;
7
 import com.community.huiju.constant.Header;
7
 import com.community.huiju.constant.Header;
8
+import com.community.huiju.constant.RequestURI;
8
 import com.community.huiju.constant.Status;
9
 import com.community.huiju.constant.Status;
9
 import com.netflix.zuul.ZuulFilter;
10
 import com.netflix.zuul.ZuulFilter;
10
 import com.netflix.zuul.context.RequestContext;
11
 import com.netflix.zuul.context.RequestContext;
11
 import com.netflix.zuul.exception.ZuulException;
12
 import com.netflix.zuul.exception.ZuulException;
12
 import lombok.extern.slf4j.Slf4j;
13
 import lombok.extern.slf4j.Slf4j;
13
 import org.apache.commons.lang.StringUtils;
14
 import org.apache.commons.lang.StringUtils;
14
-import org.springframework.http.HttpMethod;
15
-import org.springframework.http.MediaType;
16
 import org.springframework.stereotype.Component;
15
 import org.springframework.stereotype.Component;
16
+import org.springframework.util.AntPathMatcher;
17
 
17
 
18
 import javax.servlet.http.HttpServletRequest;
18
 import javax.servlet.http.HttpServletRequest;
19
 import javax.servlet.http.HttpServletResponse;
19
 import javax.servlet.http.HttpServletResponse;
26
 @Slf4j
26
 @Slf4j
27
 public class DomainZuulPostFilter extends ZuulFilter {
27
 public class DomainZuulPostFilter extends ZuulFilter {
28
 
28
 
29
+    private AntPathMatcher matcher = new AntPathMatcher();
30
+
29
     @Override
31
     @Override
30
     public String filterType() {
32
     public String filterType() {
31
-        return "post";
33
+        return "pre";
32
     }
34
     }
33
 
35
 
34
     @Override
36
     @Override
54
         response.setContentType("application/json;charset=UTF-8");
56
         response.setContentType("application/json;charset=UTF-8");
55
         HttpServletRequest request = ctx.getRequest();
57
         HttpServletRequest request = ctx.getRequest();
56
         String token = request.getHeader(Header.REQUEST_X_AUTH_TOKEN.getValue());
58
         String token = request.getHeader(Header.REQUEST_X_AUTH_TOKEN.getValue());
57
-        String loginType = request.getHeader(Header.LOGIN_TYPE.getValue());
59
+        // String loginType = request.getHeader(Header.LOGIN_TYPE.getValue());
60
+        // 根据URL判断是访问哪一个端
61
+        String requestURI = request.getRequestURI();
62
+        ResponseBean responseBean = new ResponseBean();
63
+
58
         if (StringUtils.isBlank(token)) {
64
         if (StringUtils.isBlank(token)) {
59
 
65
 
60
         }else {
66
         }else {
61
             log.info("获取的token: {}", token);
67
             log.info("获取的token: {}", token);
62
-            ResponseBean responseBean = new ResponseBean();
63
-            // APP 端
64
-            if (Constant.APP_LOGIN_TYPE.equals(loginType.trim())){
68
+
69
+            if (matcher.match(RequestURI.APP_API.getUrl(), requestURI)) {
65
                 UserElement appElement = (UserElement) request.getSession().getAttribute(Constant.APP_USER_SESSION);
70
                 UserElement appElement = (UserElement) request.getSession().getAttribute(Constant.APP_USER_SESSION);
66
                 if (null == appElement) {
71
                 if (null == appElement) {
67
                     responseBean.addError(Status.RESPONSE_STATUS_803.getValue(),Status.RESPONSE_STATUS_803.getComment());
72
                     responseBean.addError(Status.RESPONSE_STATUS_803.getValue(),Status.RESPONSE_STATUS_803.getComment());
73
+                    ctx.setSendZuulResponse(false);
68
                     ctx.setResponseBody(JSONObject.toJSONString(responseBean));
74
                     ctx.setResponseBody(JSONObject.toJSONString(responseBean));
69
                 }
75
                 }
70
 
76
 
71
-                // WEB 端
72
-            } else {
77
+            } else if (matcher.match(RequestURI.OPERATE_API.getUrl(), requestURI) || matcher.match(RequestURI.PROPERTY_API.getUrl(), requestURI)) {
73
                 UserElement webOperateElement = (UserElement) request.getSession().getAttribute(Constant.WEB_USER_SESSION);
78
                 UserElement webOperateElement = (UserElement) request.getSession().getAttribute(Constant.WEB_USER_SESSION);
74
                 if (null == webOperateElement) {
79
                 if (null == webOperateElement) {
75
                     responseBean.addError(Status.RESPONSE_STATUS_803.getValue(),Status.RESPONSE_STATUS_803.getComment());
80
                     responseBean.addError(Status.RESPONSE_STATUS_803.getValue(),Status.RESPONSE_STATUS_803.getComment());
81
+                    ctx.setSendZuulResponse(false);
76
                     ctx.setResponseBody(JSONObject.toJSONString(responseBean));
82
                     ctx.setResponseBody(JSONObject.toJSONString(responseBean));
77
                 }
83
                 }
78
             }
84
             }
79
 
85
 
80
-
81
         }
86
         }
82
 
87
 
83
         return null;
88
         return null;