Asset Redirection
I have a requirement where if we hit for 'X' asset it has to redirect to 'Y' asset.
How to implement this redirection in AEM.
I have a requirement where if we hit for 'X' asset it has to redirect to 'Y' asset.
How to implement this redirection in AEM.
@leela-pavan-kumar, in that case you can use one of below solutions:
package com.example.filters;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.engine.EngineConstants;
import org.osgi.framework.Constants;
import org.osgi.service.component.annotations.Component;
import javax.servlet.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@Component(service = Filter.class, immediate = true, property = {
EngineConstants.SLING_FILTER_SCOPE + "=" + EngineConstants.FILTER_SCOPE_REQUEST,
EngineConstants.SLING_FILTER_METHODS + "=" + HttpConstants.METHOD_GET,
Constants.SERVICE_RANKING + "=" + Integer.MAX_VALUE
})
public class RedirectFilter implements Filter {
private Map<String, String> redirectMap = new HashMap<String, String>();
@Override
public void init(FilterConfig filterConfig) throws ServletException {
redirectMap.put("/document/adobe.pdf", "/content/dam/wknd/en/adobefile.pdf");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
SlingHttpServletRequest slingRequest = (SlingHttpServletRequest) servletRequest;
SlingHttpServletResponse slingResponse = (SlingHttpServletResponse) servletResponse;
String path = slingRequest.getRequestPathInfo().getResourcePath();
if (redirectMap.containsKey(slingRequest.getRequestPathInfo().getResourcePath())) {
slingResponse.sendRedirect(redirectMap.get(path));
return;
}
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.