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.apiroute.wrapper.util;
18 import java.util.regex.Matcher;
19 import java.util.regex.Pattern;
21 public class RegExpTestUtil {
24 private final static String API_KEY_PATTERN ="/api/(?<servicename>[^/]+)(/(?<version>[^/]*)).*";
26 private final static String IUI_KEY_PATTERN ="/iui/(?<servicename>[^/]+)/.*";
28 public static boolean hostRegExpTest(String host){
30 String hostReg = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
31 +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
32 +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
33 +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)"
35 return Pattern.matches(hostReg, host);
39 public static boolean ipRegExpTest(String ip){
41 String hostReg = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
42 +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
43 +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
44 +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
45 return Pattern.matches(hostReg, ip);
49 public static boolean portRegExpTest(String port){
51 String hostReg = "^\\d{1,5}$";
52 return Pattern.matches(hostReg, port);
56 public static boolean versionRegExpTest(String version){
58 String versionReg = "^v\\d+(\\.\\d+)?$";
59 return Pattern.matches(versionReg, version);
63 public static boolean urlRegExpTest(String url){
64 if(url.equals("/")) return true;
66 String urlReg = "^\\/.*((?!\\/).)$";
67 return Pattern.matches(urlReg, url);
71 public static boolean apiRouteUrlRegExpTest(String url){
73 String urlReg = "^\\/"+ConfigUtil.getInstance().getAPI_ROOT_PATH()+"\\/.*$";
74 return Pattern.matches(urlReg, url);
78 public static boolean iuiRouteUrlRegExpTest(String url){
80 String urlReg = "^\\/"+ConfigUtil.getInstance().getIUI_ROOT_PATH()+"\\/.*$";
81 return Pattern.matches(urlReg, url);
85 public static String[] apiServiceNameMatch4URL(String url){
86 Pattern redisKeyPattern =Pattern.compile(API_KEY_PATTERN);
87 Matcher matcher = redisKeyPattern.matcher(url+"/");
88 if (matcher.matches()) {
90 if(versionRegExpTest(matcher.group("version"))){
91 version=matcher.group("version");
96 return new String[]{matcher.group("servicename"),version};
104 public static String iuiServiceNameMatch4URL(String url){
105 Pattern redisKeyPattern =Pattern.compile(IUI_KEY_PATTERN);
106 Matcher matcher = redisKeyPattern.matcher(url+"/");
107 if (matcher.matches()) {
108 return matcher.group("servicename");