From fd69ef486563fef166d3cbd34fced3ff868efe7a Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Wed, 14 Jul 2010 07:45:57 +0000 Subject: [PATCH] [LMS-1601] fixed relative paths for auto resolve (added redirect to the automatically resolved path) SVN: 17014 --- .../server/DatasetDownloadServlet.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatasetDownloadServlet.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatasetDownloadServlet.java index d6cfb0746cc..11d966da24b 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatasetDownloadServlet.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatasetDownloadServlet.java @@ -351,9 +351,7 @@ public class DatasetDownloadServlet extends AbstractDatasetDownloadServlet RenderingContext newRenderingContext = new RenderingContext(renderingContext.getRootDir(), renderingContext .getUrlPrefix(), newRelativePath); - - renderPage(rendererFactory, response, dataSetCode, newRenderingContext, requestParams, - session); + autoResolveRedirect(response, newRenderingContext); } else if (AutoResolveUtils.continueAutoResolving(requestParams.tryGetMainDataSetPattern(), dir)) { @@ -366,15 +364,24 @@ public class DatasetDownloadServlet extends AbstractDatasetDownloadServlet RenderingContext newRenderingContext = new RenderingContext(renderingContext.getRootDir(), renderingContext .getUrlPrefix(), newRelativePath); - - renderPage(rendererFactory, response, dataSetCode, newRenderingContext, requestParams, - session); + autoResolveRedirect(response, newRenderingContext); } else { createPage(rendererFactory, response, dataSet, renderingContext, dir); } } + private static void autoResolveRedirect(HttpServletResponse response, + RenderingContext newContext) throws IOException + { + String newLocation = newContext.getUrlPrefix() + "/" + newContext.getRelativePathOrNull(); + if (operationLog.isInfoEnabled()) + { + operationLog.info("Auto resolve redirect: " + newLocation); + } + response.sendRedirect(response.encodeRedirectURL(newLocation)); + } + private void createPage(IRendererFactory rendererFactory, HttpServletResponse response, ExternalData dataSet, RenderingContext renderingContext, File file) throws IOException { -- GitLab