public String[] getSelectors() { return requestPathInfo.getSelectors(); }
/** * Checks if the given selector is present in the current URL request (at any position). * @param request Sling request * @param expectedSelector Selector string to check for. * @return true if the selector was found */ public static boolean hasSelector(@NotNull SlingHttpServletRequest request, @NotNull String expectedSelector) { String[] selectors = request.getRequestPathInfo().getSelectors(); return ArrayUtils.contains(selectors, expectedSelector); }
/** True if our request has the given selector */ private boolean hasSelector(SlingHttpServletRequest req, String selectorToCheck) { for (String selector : req.getRequestPathInfo().getSelectors()) { if (selectorToCheck.equals(selector)) { return true; } } return false; }
@Override public String[] getSelectors() { return isSelectorOverridden ? selectors : getOriginal().getSelectors(); }
@Override public String[] getSelectors() { return isSelectorOverridden ? selectors : getOriginal().getSelectors(); }
/** * Checks if the provided request contains a certain selector. * @param req the request * @param selectorToCheck the selector * @return {@code true} if the selector is present, {@code false} otherwise */ protected boolean hasSelector(SlingHttpServletRequest req, String selectorToCheck) { for(String selector : req.getRequestPathInfo().getSelectors()) { if(selectorToCheck.equals(selector)) { return true; } } return false; }
public boolean hasIncludeSelector(SlingHttpServletRequest request) { return ArrayUtils.contains(request.getRequestPathInfo().getSelectors(), includeSelector); }
private void buildSelectors(StringBuffer buf) { String[] selectors = originalPathInfo.getSelectors(); for (String sel : selectors) { if (!selectorsToRemove.contains(sel) && !selectorsToAdd.contains(sel)) { buf.append('.'); buf.append(sanitize(sel)); } } for (String sel : selectorsToAdd) { buf.append('.'); buf.append(sanitize(sel)); } }
/** * Checks if one of the given selectors is present in the current URL request (at any position). * @param request Sling request * @param expectedSelectors Selectors string to check for. * @return true if the selector was found */ @SuppressWarnings("null") public static boolean hasAnySelector(@NotNull SlingHttpServletRequest request, @NotNull String @NotNull... expectedSelectors) { String[] selectors = request.getRequestPathInfo().getSelectors(); if (selectors != null && expectedSelectors != null) { for (String expectedSelector : expectedSelectors) { if (ArrayUtils.contains(selectors, expectedSelector)) { return true; } } } return false; }
@SlingServlet(paths = "/bin/test", selectors = {"first", "second"}, extensions = "json") public class SelectorExampleServlet extends SlingAllMethodsServlet { @Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { PrintWriter writer = response.getWriter(); RequestPathInfo requestPathInfo = request.getRequestPathInfo(); String[] selectors = requestPathInfo.getSelectors(); for (String selector : selectors) { writer.print(selector); writer.println(); // space } } }
@Override public Resource getResource(ResourceResolver resourceResolver, HttpServletRequest request, String path) { SlingHttpServletRequest slingHttp = (SlingHttpServletRequest) request; log.info("Selectors : {}", slingHttp.getRequestPathInfo().getSelectors().length ); return getResource(resourceResolver, path); }
final String[] selectors = req.getRequestPathInfo().getSelectors(); if (selectors != null && selectors.length > 0) { final String level = selectors[selectors.length - 1];
String[] selectors = pathInfo.getSelectors(); if (selectors == null) { return null;
String[] selectors = pathInfo.getSelectors(); if (selectors == null) { return null;
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { if (Arrays.asList(request.getRequestPathInfo().getSelectors()).contains(BasePipe.PN_STATUS)){ response.getWriter().append(plumber.getStatus(request.getResource())); } else { execute(request, response, false); } }
public ImageWrapper(final SlingHttpServletRequest request) { this.request = request; final String[] selectors = request.getRequestPathInfo().getSelectors(); String toName = null; if (selectors.length > 1) { final String selector = selectors[1]; if (isNumeric(selector)) { width = Integer.valueOf(selector); } else { toName = selector; width = selectors.length > 2 ? Integer.valueOf(selectors[2]) : -1; } } else { width = -1; } if (toName != null) { name = toName; } else { name = new Image(getResource()).hasContent() ? null : ComponentConstants.DEFAULT_IMAGE_NAME; } }
/** * Sightly component initialization. */ @Override public void activate() { resource = getResource(); request = getRequest(); resolver = getResourceResolver(); listView = Arrays.asList(request.getRequestPathInfo().getSelectors()).contains(LIST_VIEW_SELECTOR); SlingScriptHelper scriptHelper = getSlingScriptHelper(); linkRewriter = scriptHelper.getService(LinkRewriterService.class); getBlog(resource); }
@Override protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws IOException { Map<String, String> data = null; if (request.getRequestPathInfo().getSelectors().length > 0) { final String label = request.getRequestPathInfo().getSelectors()[0]; if (PROVIDER_LABEL.equals(label)) { data = this.getInfo(request); } } if (data == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Unknown Info Request"); } else { response.setHeader(CACHE_CONTROL_HEADER, CACHE_CONTROL_HEADER_VALUE); final String extension = request.getRequestPathInfo().getExtension(); if ("json".equals(extension)) { renderJson(response, data); } else if ("txt".equals(extension)) { renderPlainText(response, data); } else { // default to html renderHtml(response, data); } } }
@Override protected void doRun(final SlingHttpServletRequest request, final PostResponse response, final List<Modification> changes) throws PersistenceException { // SLING-3203: selectors, extension and suffix make no sense here and // might lead to deleting other resources than the one the user means. final RequestPathInfo rpi = request.getRequestPathInfo(); if( (rpi.getSelectors() != null && rpi.getSelectors().length > 0) || (rpi.getExtension() != null && rpi.getExtension().length() > 0) || (rpi.getSuffix() != null && rpi.getSuffix().length() > 0)) { response.setStatus( HttpServletResponse.SC_FORBIDDEN, "DeleteOperation request cannot include any selectors, extension or suffix"); return; } final VersioningConfiguration versioningConfiguration = getVersioningConfiguration(request); final boolean deleteChunks = isDeleteChunkRequest(request); final Iterator<Resource> res = getApplyToResources(request); if (res == null) { final Resource resource = request.getResource(); deleteResource(resource, changes, versioningConfiguration, deleteChunks); } else { while (res.hasNext()) { final Resource resource = res.next(); deleteResource(resource, changes, versioningConfiguration, deleteChunks); } } }
/** * Creates a <code>ResourceCollector</code> for the given * <code>request</code>. If the request is a GET or HEAD request, a * specialized instance is returned which also takes the request selectors * and request extension into account for finding servlet resources. * Otherwise an instance of this class itself is returned which just takes * the resource type and request method name into account. * * @param request The <code>SlingHttpServletRequest</code> for which to * return a <code>ResourceCollector</code>. * @return The <code>ResourceCollector</code> to find servlets and scripts * suitable for handling the <code>request</code>. */ public static ResourceCollector create( final SlingHttpServletRequest request, final String[] executionPaths, final String[] defaultExtensions) { final RequestPathInfo requestPathInfo = request.getRequestPathInfo(); final boolean isDefaultExtension = ArrayUtils.contains(defaultExtensions, requestPathInfo.getExtension()); return new ResourceCollector(request.getResource(), requestPathInfo.getExtension(), executionPaths, isDefaultExtension, request.getMethod(), requestPathInfo.getSelectors()); }