boolean accept()

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;
    }