2 * Copyright 2016 ZTE, Inc. and others.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 package org.onap.msb.sdclient.wrapper.util;
18 import javax.servlet.http.HttpServletRequest;
20 import org.apache.commons.lang3.StringUtils;
23 * @ClassName: ApiRouteUtil
24 * @Description: TODO(ApiRoute工具类)
25 * @author tanghua10186366
26 * @date 2015年9月29日 下午3:19:51
29 public class DiscoverUtil {
32 public static final String CONSUL_DEFAULT_PORT="8500";
34 public static final String APIGATEWAY_SERVINCE = "apigateway";
36 public static final String ROUTER_SERVINCE = "router";
38 public static final String APIGATEWAY_SERVINCE_ALL = "all";
40 public static final String APIGATEWAY_SERVINCE_DEFAULT = "default";
42 public static final String VISUAL_RANGE_IN = "1";
44 public static final String VISUAL_RANGE_OUT = "0";
46 public static final String SERVICENAME_LINE_NAMESPACE="-";
48 public static final String SPLIT_LINE="|";
50 public static final String EXTERNAL_NODE_NAME="externalService";
53 public static final String REQUEST_SUCCESS = "SUCCESS";
55 public static final String REQUEST_FAIL = "FAIL";
57 public static final String VISUAL_RANGE_LIST="0,1";
59 public static final String PROTOCOL_LIST="REST,HTTP,MQ,FTP,SNMP,UI,TCP,UDP,PORTAL";
61 public static final String LB_POLICY_LIST="round-robin,ip_hash,least_conn,client_custom";
63 public static final String LB_PARAMS_LIST="weight,max_fails,fail_timeout";
65 public static final String CHECK_TYPE_LIST="HTTP,TCP,TTL";
67 public static final String CHECK_HA_ROLE_LIST="active,standby";
69 public static final String CONSUL_CATALOG_URL="/v1/catalog";
71 public static final String CONSUL_AGENT_URL="/v1/agent/service";
73 public static final String CONSUL_AGENT_TTL_URL="/v1/agent/check/pass/";
75 public static final String CONSUL_HEALTH_URL="/v1/health/service/";
77 public static final String[] PUBLISH_PROTOCOL={"TCP","UDP","HTTP","REST","UI","PORTAL"};
79 public static final String[] HTTP_PROTOCOL={"HTTP","REST","UI","PORTAL"};
81 public static final String TCP_UDP_PORT_RANGE_START="28001";
83 public static final String TCP_UDP_PORT_RANGE_END="30000";
85 public static final String CONSUL_ADDRESSS="127.0.0.1:8500";
87 public static final String CONSUL_REGISTER_MODE="catalog";
89 // public static boolean isProtocol_tcp_udp(String protocol){
90 // return "TCP".equals(protocol) || "UDP".equals(protocol);
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(",");
100 return ip.substring(0, index);
105 ip = request.getHeader("X-Real-IP");
107 if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
112 return request.getRemoteAddr();
116 public static boolean checkVisualRangeIn(String visualRange){
117 return checkExist(visualRange,DiscoverUtil.VISUAL_RANGE_IN, "|");
120 public static boolean checkVisualRangeOut(String visualRange){
121 return checkExist(visualRange,DiscoverUtil.VISUAL_RANGE_OUT, "|");
124 public static boolean checkExist(String list,String value,String separator){
125 String[] listArray=StringUtils.split(list, separator);
127 for(int i=0;i<listArray.length;i++){
128 if(value.equals(listArray[i])) return true;
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;
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])){