X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Frserv%2FMatch.java;fp=auth%2Fauth-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Frserv%2FMatch.java;h=599e45b2ceeca4e4630247f7d9df0ea19162f186;hb=7e966914050e66219689001ff4ab601a49eef0ac;hp=5a036551a4ada06c7a62d4a1026f8379e28e13b9;hpb=ead32f193586e39b59bb366bddf70e665173a52d;p=aaf%2Fauthz.git diff --git a/auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Match.java b/auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Match.java index 5a036551..599e45b2 100644 --- a/auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Match.java +++ b/auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Match.java @@ -52,16 +52,16 @@ public class Match { public Match(String path) { // IF DEBUG: System.out.print("\n[" + path + "]"); params = new HashMap<>(); - if(path!=null) { + if (path!=null) { String[] pa = path.split("/"); values = new byte[pa.length][]; vars = new Integer[pa.length]; int val = 0; String key; - for(int i=0;i1) { + if (pa[i].length()>1) { /* remove * from value */ int newlength = values[i].length-1; byte[] real = new byte[newlength]; @@ -107,25 +107,25 @@ public class Match { */ public String param(String path,String key) { Integer val = params.get(key); // :key or key - if(val!=null) { + if (val!=null) { int start = val & 0xFFFF; int end = (val >> 16) & 0xFFFF; int idx = -1; int i; - for(i=0;i0?(pabytes[0]=='/'):false; // IF DEBUG: System.out.println("\n -- " + path + " --"); - for(int i=0;rv && i=lastField) { // checking here allows there to be a non-functional ending / + for (int i=0;rv && i=lastField) { // checking here allows there to be a non-functional ending / rv = false; break; } - if(values[field]==null) { // it's a variable, just look for /s - if(wildcard && field==lastField-1) return true;// we've made it this far. We accept all remaining characters + if (values[field]==null) { // it's a variable, just look for /s + if (wildcard && field==lastField-1) return true;// we've made it this far. We accept all remaining characters Integer val = vars[field]; int start = val & 0xFFFF; int end = (val >> 16) & 0xFFFF; - if(end==0)end=start+1; + if (end==0)end=start+1; int k = i; - for(int j=start; ji)i=k-1; // if we've incremented, have to accommodate the outer for loop incrementing as well + if (k==lastByte && pabytes[k-1]!='/')++field; + if (k>i)i=k-1; // if we've incremented, have to accommodate the outer for loop incrementing as well fieldMatched = false; // reset fieldIdx = 0; } else { // IF DEBUG: System.out.print((char)pabytes[i]); - if(pabytes[i]=='/') { // end of field, eval if Field is matched + if (pabytes[i]=='/') { // end of field, eval if Field is matched // if double slash, check if supposed to be empty - if(fieldIdx==0 && values[field].length==0) { + if (fieldIdx==0 && values[field].length==0) { fieldMatched = true; } rv = fieldMatched && ++field