From d448077492f159e5877b73c0e732aecc5b4a7695 Mon Sep 17 00:00:00 2001 From: Shwetank Dave Date: Mon, 4 Jun 2018 14:42:53 -0400 Subject: [PATCH] Ignore reserved query params Change-Id: I3eadc1e238a6f73d2dee1b6ced9b1d6033ded85e Issue-ID: AAI-1203 Signed-off-by: Shwetank Dave --- .../src/main/java/org/onap/champ/ChampRESTAPI.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/champ-service/src/main/java/org/onap/champ/ChampRESTAPI.java b/champ-service/src/main/java/org/onap/champ/ChampRESTAPI.java index 1a68027..4b7c9a7 100644 --- a/champ-service/src/main/java/org/onap/champ/ChampRESTAPI.java +++ b/champ-service/src/main/java/org/onap/champ/ChampRESTAPI.java @@ -27,6 +27,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Timer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; @@ -81,6 +83,8 @@ public class ChampRESTAPI { private Logger logger = LoggerFactory.getInstance().getLogger(ChampRESTAPI.class); Logger auditLogger = LoggerFactory.getInstance().getAuditLogger(ChampRESTAPI.class.getName()); private static Logger metricsLogger = LoggerFactory.getInstance().getMetricsLogger(ChampRESTAPI.class.getName()); + private static final Pattern QUERY_OBJECT_ID_URL_MATCH = Pattern.compile("_reserved_(.*)"); + public ChampRESTAPI(ChampDataService champDataService, ChampAsyncRequestProcessor champAsyncRequestProcessor) { this.champDataService = champDataService; @@ -294,7 +298,7 @@ public class ChampRESTAPI { Map filter = new HashMap<>(); for (Map.Entry> e : uriInfo.getQueryParameters().entrySet()) { - if (!e.getKey().equals(propertiesKey)) { + if ((!e.getKey().equals(propertiesKey)) && !reservedKeyMatcher ( QUERY_OBJECT_ID_URL_MATCH, e.getKey () )) { filter.put(e.getKey(), e.getValue().get(0)); } } @@ -479,7 +483,9 @@ public class ChampRESTAPI { List list; Map filter = new HashMap<>(); for (Map.Entry> e : uriInfo.getQueryParameters().entrySet()) { - filter.put(e.getKey(), e.getValue().get(0)); + if (!reservedKeyMatcher ( QUERY_OBJECT_ID_URL_MATCH, e.getKey () )) { + filter.put ( e.getKey (), e.getValue ().get ( 0 ) ); + } } Response response = null; try { @@ -590,4 +596,13 @@ public class ChampRESTAPI { return response; } + private boolean reservedKeyMatcher(Pattern p, String key) { + Matcher m = p.matcher ( key ); + if (m.matches()) { + return true; + } else { + return false; + } + } + } -- 2.16.6