boolean accept()

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