import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Service;
import port org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* It will intercepts all the incoming requests. Performs
* various operation on Request and Response.
**/
@Component(immediate = true, metatype = true, label = "Filter Service")
@Service(value = javax.servlet.Filter.class)
@Properties({ @Property(name = "filter.scope", label = "scope", value = "REQUEST"),
@Property(name = "filter.order", label = "order", value = "1") })
public class TestFilterServiceImpl implements javax.servlet.Filter {
/**
* Logger for this class.
*/
private static final Logger LOGGER = LoggerFactory
.getLogger(TestFilterServiceImpl .class);
/**
* life cycle method of Filter.
*/
@Override
public void destroy() {
}
/**
* This method gets called whenever server gets any request. Every request will go via this
* Filter method.
*/
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws IOException, ServletException {
if (request instanceof SlingHttpServletRequest
&& response instanceof SlingHttpServletResponse) {
SlingHttpServletRequest httpServletRequest = (SlingHttpServletRequest) request;
SlingHttpServletResponse httpServletResponse = (SlingHttpServletResponse) response;
httpServletRequest.setAttribute("value", "1000001");
filterChain.doFilter(httpServletRequest, httpServletResponse);
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
TestFilterServiceImpl .LOGGER.info("initi FilterConfig");
}
Comments
Post a Comment