fb612940dc1ba7d0532eed7e6e0f4bd62ce46b7a
[msb/discovery.git] / sdclient / discovery-service / src / main / java / org / onap / msb / sdclient / wrapper / util / DiscoverUtil.java
1 /**
2  * Copyright 2016 ZTE, Inc. and others.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.onap.msb.sdclient.wrapper.util;
17
18 import javax.servlet.http.HttpServletRequest;
19
20 import org.apache.commons.lang3.StringUtils;
21
22 /** 
23 * @ClassName: ApiRouteUtil 
24 * @Description: TODO(ApiRoute工具类) 
25 * @author tanghua10186366 
26 * @date 2015年9月29日 下午3:19:51 
27 *  
28 */
29 public class DiscoverUtil {
30
31         
32     public static final String CONSUL_DEFAULT_PORT="8500";
33     
34     public static final String APIGATEWAY_SERVINCE = "apigateway";
35     
36     public static final String ROUTER_SERVINCE = "router";
37     
38     public static final String APIGATEWAY_SERVINCE_ALL = "all";
39     
40     public static final String APIGATEWAY_SERVINCE_DEFAULT = "default";
41     
42     public static final String VISUAL_RANGE_IN = "1";
43     
44     public static final String VISUAL_RANGE_OUT = "0";
45     
46     public static final String SERVICENAME_LINE_NAMESPACE="-";
47     
48     public static final String SPLIT_LINE="|";
49     
50     public static final String EXTERNAL_NODE_NAME="externalService";
51
52
53         public static final String REQUEST_SUCCESS = "SUCCESS";
54         
55         public static final String REQUEST_FAIL = "FAIL";
56         
57         public static final String VISUAL_RANGE_LIST="0,1"; 
58         
59     public static final String PROTOCOL_LIST="REST,HTTP,MQ,FTP,SNMP,UI,TCP,UDP,PORTAL"; 
60     
61     public static final String LB_POLICY_LIST="round-robin,ip_hash,least_conn,client_custom"; 
62     
63     public static final String LB_PARAMS_LIST="weight,max_fails,fail_timeout";    
64     
65     public static final String CHECK_TYPE_LIST="HTTP,TCP,TTL";
66     
67     public static final String CHECK_HA_ROLE_LIST="active,standby";
68     
69     public static final String CONSUL_CATALOG_URL="/v1/catalog";
70     
71     public static final String CONSUL_AGENT_URL="/v1/agent/service";
72     
73     public static final String CONSUL_AGENT_TTL_URL="/v1/agent/check/pass/";
74     
75     public static final String CONSUL_HEALTH_URL="/v1/health/service/";
76     
77     public static final String[] PUBLISH_PROTOCOL={"TCP","UDP","HTTP","REST","UI","PORTAL"};
78     
79     public static final String[] HTTP_PROTOCOL={"HTTP","REST","UI","PORTAL"};
80     
81    public static  final String TCP_UDP_PORT_RANGE_START="28001";
82     
83     public static  final String TCP_UDP_PORT_RANGE_END="30000";
84     
85     public static final String CONSUL_ADDRESSS="127.0.0.1:8500";
86     
87     public static final String CONSUL_REGISTER_MODE="catalog";
88   
89 //    public static boolean isProtocol_tcp_udp(String protocol){
90 //      return "TCP".equals(protocol) || "UDP".equals(protocol);
91 //    }
92 //    
93         
94     public static String getRealIp(HttpServletRequest request) {
95         String ip = request.getHeader("X-Forwarded-For");
96         if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
97             // 多次反向代理后会有多个ip值,第一个ip才是真实ip
98             int index = ip.indexOf(",");
99             if (index != -1) {
100                 return ip.substring(0, index);
101             } else {
102                 return ip;
103             }
104         }
105         ip = request.getHeader("X-Real-IP");
106
107         if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
108             return ip;
109         }
110         
111
112         return request.getRemoteAddr();
113
114     }
115     
116     public static boolean checkVisualRangeIn(String visualRange){
117       return checkExist(visualRange,DiscoverUtil.VISUAL_RANGE_IN, "|");
118     }
119     
120     public static boolean checkVisualRangeOut(String visualRange){
121       return checkExist(visualRange,DiscoverUtil.VISUAL_RANGE_OUT, "|");
122     }
123     
124     public static boolean checkExist(String list,String value,String separator){
125         String[] listArray=StringUtils.split(list, separator);
126         
127         for(int i=0;i<listArray.length;i++){
128             if(value.equals(listArray[i])) return true;
129         }
130         return false;
131     }
132     
133     public static boolean checkExist(String[] list,String value){
134              for(int i=0;i<list.length;i++){
135             if(value.equals(list[i])) return true;
136         }
137         return false;
138     }
139     
140     public static boolean contain(String[] array,String value[]){
141       for(int i=0;i<array.length;i++){
142           for(int n=0;n<value.length;n++){
143             if(array[i].equals(value[n])){
144                return true;  
145             }
146           }
147       }
148       return false;
149
150     }
151     
152  
153 }