From cf206452a0aa5edb04e45a0cbcd0018a30a7ee6f Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Tue, 20 Dec 2016 15:29:50 +0000 Subject: [PATCH] updated filter for Catalogue Resolver git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-transfer/uri-resolver@141280 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../resolver/UriResolverRewriteFilter.java | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/gcube/datatransfer/resolver/UriResolverRewriteFilter.java b/src/main/java/org/gcube/datatransfer/resolver/UriResolverRewriteFilter.java index 2139572..5d0aae2 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/UriResolverRewriteFilter.java +++ b/src/main/java/org/gcube/datatransfer/resolver/UriResolverRewriteFilter.java @@ -95,32 +95,36 @@ public class UriResolverRewriteFilter implements Filter{ //String vreName = requestURI.substring(beginIndex) HttpServletRequest request = (HttpServletRequest) req; logger.debug("method is: "+request.getMethod()); - String[] pathSplit = multiReadRequest.getServletPath().split(PATH_SEPARATOR); - String newURI = SERVLET_CATALOGUE; - if(pathSplit.length==5){ - logger.info("Resolving a clear URL to catalogue..."); - - logger.debug("found VRE name: "+pathSplit[2]); - String gcubeScope = CatalogueRequestParameter.GCUBE_SCOPE.getKey() +"="+pathSplit[2]; - String eC = CatalogueRequestParameter.ENTITY_CONTEXT.getKey() +"="+pathSplit[3]; - logger.debug("found context name: "+eC); - String eN = CatalogueRequestParameter.ENTITY_NAME.getKey() +"="+pathSplit[4]; - logger.debug("found entity name: "+eN); - String encodedQuery = UrlEncoderUtil.encodeQuery(gcubeScope,eC,eN); - if(request.getMethod().compareTo("GET")==0) - newURI+= "?" + PARAMETER_DIRECT_CATALOGUE_LINK + "=" + encodedQuery; - }else{ - logger.info("Resolving an encrypted URL to catalogue..."); - int lastSlash = requestURI.lastIndexOf(PATH_SEPARATOR); - String toCatalogueLink = requestURI.substring(lastSlash + 1, requestURI.length()); - if(request.getMethod().compareTo("GET")==0) - newURI+= "?" + PARAMETER_ENC_CATALOGUE_LINK + "=" + toCatalogueLink; + if(request.getMethod().compareTo("POST")==0){ + logger.debug("is POST request..."); + logger.debug("forward to: " + SERVLET_CATALOGUE); + multiReadRequest.getRequestDispatcher(SERVLET_CATALOGUE).forward(multiReadRequest, response); } + else{ + logger.debug("is GET request..."); + String[] pathSplit = multiReadRequest.getServletPath().split(PATH_SEPARATOR); + String newURI = SERVLET_CATALOGUE; + if(pathSplit.length==5){ + logger.info("Resolving a clear URL to catalogue..."); + logger.debug("found VRE name: "+pathSplit[2]); + String gcubeScope = CatalogueRequestParameter.GCUBE_SCOPE.getKey() +"="+pathSplit[2]; + String eC = CatalogueRequestParameter.ENTITY_CONTEXT.getKey() +"="+pathSplit[3]; + logger.debug("found context name: "+eC); + String eN = CatalogueRequestParameter.ENTITY_NAME.getKey() +"="+pathSplit[4]; + logger.debug("found entity name: "+eN); + String encodedQuery = UrlEncoderUtil.encodeQuery(gcubeScope,eC,eN); + newURI+= "?" + PARAMETER_DIRECT_CATALOGUE_LINK + "=" + encodedQuery; + }else{ + logger.info("Resolving an encrypted URL to catalogue..."); + int lastSlash = requestURI.lastIndexOf(PATH_SEPARATOR); + String toCatalogueLink = requestURI.substring(lastSlash + 1, requestURI.length()); + newURI+= "?" + PARAMETER_ENC_CATALOGUE_LINK + "=" + toCatalogueLink; + } - logger.debug("forward to: " + newURI); - multiReadRequest.getRequestDispatcher(newURI).forward(multiReadRequest, response); - + logger.debug("forward to: " + newURI); + multiReadRequest.getRequestDispatcher(newURI).forward(multiReadRequest, response); + } //chain.doFilter(multiReadRequest, response); }else{