aboutsummaryrefslogtreecommitdiffstats
path: root/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/RegExpTestUtil.java
blob: 0779dc8f6d9caee0211304cdab38ec1f8ddd4eb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*******************************************************************************
 * Copyright 2016-2017 ZTE, Inc. and others.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package org.onap.msb.apiroute.wrapper.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExpTestUtil {
  
 
  private final static String API_KEY_PATTERN ="/api/(?<servicename>[^/]+)(/(?<version>[^/]*)).*";
  
  private final static String IUI_KEY_PATTERN ="/iui/(?<servicename>[^/]+)/.*";
    
  public static boolean  hostRegExpTest(String host){
      
      String hostReg = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."  
              +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."  
              +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."  
              +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)"
              +":(\\d{1,5})$";   
      return Pattern.matches(hostReg, host); 
      
  }
  
  public static boolean  ipRegExpTest(String ip){
      
      String hostReg = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."  
              +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."  
              +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."  
              +"(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";  
      return Pattern.matches(hostReg, ip); 
      
  }
  
 public static boolean  portRegExpTest(String port){
      
      String hostReg = "^\\d{1,5}$";  
      return Pattern.matches(hostReg, port); 
      
  }
  
public static boolean versionRegExpTest(String version){
      
      String versionReg = "^v\\d+(\\.\\d+)?$";  
      return Pattern.matches(versionReg, version); 
      
  }

public static boolean urlRegExpTest(String url){
    if(url.equals("/")) return true;
    
    String urlReg = "^\\/.*((?!\\/).)$";  
    return Pattern.matches(urlReg, url); 
    
}

public static boolean apiRouteUrlRegExpTest(String url){
    
    String urlReg = "^\\/"+ConfigUtil.getInstance().getAPI_ROOT_PATH()+"\\/.*$";  
    return Pattern.matches(urlReg, url); 
    
}

public static boolean iuiRouteUrlRegExpTest(String url){
    
    String urlReg = "^\\/"+ConfigUtil.getInstance().getIUI_ROOT_PATH()+"\\/.*$";  
    return Pattern.matches(urlReg, url); 
    
}

public static String[] apiServiceNameMatch4URL(String url){
  Pattern redisKeyPattern =Pattern.compile(API_KEY_PATTERN);
  Matcher matcher = redisKeyPattern.matcher(url+"/");
  if (matcher.matches()) {
    String version;
    if(versionRegExpTest(matcher.group("version"))){
      version=matcher.group("version");
    }
    else{
      version="";
    }
     return new String[]{matcher.group("servicename"),version}; 
    }
    else{
      return null;
    }
}


public static String iuiServiceNameMatch4URL(String url){
  Pattern redisKeyPattern =Pattern.compile(IUI_KEY_PATTERN);
  Matcher matcher = redisKeyPattern.matcher(url+"/");
  if (matcher.matches()) {
     return matcher.group("servicename"); 
    }
    else{
      return null;
    }
}

}