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

Reply via email to