Already tried that one ;) it returns a non existing resource with the path /content/dam/nice-image.cdn.jpg/modification-date/20160815/nice-image.jpg
Greetings, Roy > On 28 Jul 2016, at 18:35, Jason Bailey <jason.bai...@sas.com> wrote: > > I'm under the understanding that it is; > > request.getResource().getPath() > > -----Original Message----- > From: Roy Teeuwen [mailto:r...@teeuwen.be] > Sent: Thursday, July 28, 2016 12:31 PM > To: users@sling.apache.org > Subject: Getting the actual resource from a request > > Hey all, > > I am creating a SlingServlet that will work by both using a selector and a > suffix. The resource is for example /content/dam/image.jpg and the actual url > will be > /content/dam/nice-image.cdn.jpg/modification-date/20160815/nice-image.jpg > > What is the most easy way to get the actual resource path again from the > SlingHttpServletRequest? Currently I am doing the following but I find it a > bit cumbersome: > > private String getResourcePath(SlingHttpServletRequest request) { > String requestUrl = request.getRequestPathInfo().getResourcePath(); > int endIndex = > requestUrl.lastIndexOf(request.getRequestPathInfo().getSuffix()); > String resourcePathWithSelector = requestUrl.substring(0, endIndex); > endIndex = > resourcePathWithSelector.lastIndexOf(request.getRequestPathInfo().getSelectorString() > + "." + request.getRequestPathInfo().getExtension()); > return resourcePathWithSelector.substring(0, endIndex) + > request.getRequestPathInfo().getExtension(); > } > > Is there an easier way or is parsing it like this the only way? > > Also after I got the actual resourcePath, I tried doing the following, but > this doesn’t seem to work, any clue on why? > > @Override > protected void doGet(SlingHttpServletRequest request, > SlingHttpServletResponse response) throws ServletException, IOException { > RequestDispatcherOptions opts = new RequestDispatcherOptions(); > opts.setReplaceSelectors(""); > String resourcePath = getResourcePath(request); > RequestDispatcher dispatcher = > request.getRequestDispatcher(resourcePath, opts); > if (dispatcher != null) { > dispatcher.forward(request, response); > } > } > > I would expect that the previous would actually just forward it to the actual > image being fetched from the getResourcePath but it just gives me a 404 not > found (I checked the getResourcePath and it does return > /content/dam/nice-image.jpg) > > Thanks! > Roy