in src/main/java/org/apache/sling/servlets/resolver/internal/PathBasedServletAcceptor.java [74:110]
boolean accept(SlingJakartaHttpServletRequest request, Servlet servlet) {
final String servletName = RequestUtil.getServletName(servlet);
// Get OSGi service properties from the SlingServletConfig
final SlingServletConfig config = getSlingServletConfig(servlet.getServletConfig(), servlet);
if (config == null) {
LOGGER.debug("Did not get a SlingServletConfig for {}", servletName);
return true;
}
// If the servlet properties have the "extpaths" option, check extension, selector etc.
boolean accepted = true;
final Object strictPaths = config.getServiceProperty(ServletResolverConstants.SLING_SERVLET_PATHS_STRICT);
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;
}