in src/main/java/org/apache/sling/servlets/resolver/internal/PathBasedServletAcceptor.java [59:82]
boolean accept(SlingHttpServletRequest request, Servlet servlet) {
// Get OSGi service properties from the SlingServletConfig
final ServletConfig rawCfg = servlet.getServletConfig();
if(!(rawCfg instanceof SlingServletConfig)) {
LOGGER.debug("Did not get a SlingServletConfig for {}", RequestUtil.getServletName(servlet));
return true;
}
final SlingServletConfig config = (SlingServletConfig)rawCfg;
final String servletName = RequestUtil.getServletName(servlet);
// If the servlet properties have the "extpaths" option, check extension, selector etc.
boolean accepted = true;
final Object strictPaths = config.getServiceProperty(STRICT_PATHS_SERVICE_PROPERTY);
if(strictPaths != null && Boolean.valueOf(strictPaths.toString())) {
accepted =
accept(servletName, config, ServletResolverConstants.SLING_SERVLET_EXTENSIONS, true, request.getRequestPathInfo().getExtension())
&& accept(servletName, config, ServletResolverConstants.SLING_SERVLET_SELECTORS, true, request.getRequestPathInfo().getSelectors())
&& accept(servletName, config, ServletResolverConstants.SLING_SERVLET_METHODS, false, request.getMethod());
}
LOGGER.debug("accepted={} for {}", accepted, servletName);
return accepted;
}