private String canonicalize(String s) { if(canonicalizePaths) { return CanonicalPathUtils.canonicalize(s); } return s; }
case '/': if (state == FIRST_SLASH) { return realCanonicalize(path, i + 1, FIRST_SLASH); } else if (state == ONE_DOT) { return realCanonicalize(path, i + 2, FIRST_SLASH); } else if (state == TWO_DOT) { return realCanonicalize(path, i + 3, FIRST_SLASH); if(!DONT_CANONICALIZE_BACKSLASH) { if (state == FIRST_BACKSLASH) { return realCanonicalize(path, i + 1, FIRST_BACKSLASH); } else if (state == ONE_DOT) { return realCanonicalize(path, i + 2, FIRST_BACKSLASH); } else if (state == TWO_DOT) { return realCanonicalize(path, i + 3, FIRST_BACKSLASH);
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { boolean handlingRequired = File.separatorChar != '/'; if (handlingRequired) { exchange.setRequestPath(canonicalize(exchange.getRequestPath().replace(File.separatorChar, '/'))); exchange.setRelativePath(canonicalize(exchange.getRelativePath().replace(File.separatorChar, '/'))); exchange.setResolvedPath(canonicalize(exchange.getResolvedPath().replace(File.separatorChar, '/'))); } next.handleRequest(exchange); }
case '/': if (state == FIRST_SLASH) { return realCanonicalize(path, i + 1, FIRST_SLASH); } else if (state == ONE_DOT) { return realCanonicalize(path, i + 2, FIRST_SLASH); } else if (state == TWO_DOT) { return realCanonicalize(path, i + 3, FIRST_SLASH); if(!DONT_CANONICALIZE_BACKSLASH) { if (state == FIRST_BACKSLASH) { return realCanonicalize(path, i + 1, FIRST_BACKSLASH); } else if (state == ONE_DOT) { return realCanonicalize(path, i + 2, FIRST_BACKSLASH); } else if (state == TWO_DOT) { return realCanonicalize(path, i + 3, FIRST_BACKSLASH);
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { exchange.setRelativePath(CanonicalPathUtils.canonicalize(exchange.getRelativePath())); next.handleRequest(exchange); }
case '/': if (state == FIRST_SLASH) { return realCanonicalize(path, i + 1, FIRST_SLASH); } else if (state == ONE_DOT) { return realCanonicalize(path, i + 2, FIRST_SLASH); } else if (state == TWO_DOT) { return realCanonicalize(path, i + 3, FIRST_SLASH); if(!DONT_CANONICALIZE_BACKSLASH) { if (state == FIRST_BACKSLASH) { return realCanonicalize(path, i + 1, FIRST_BACKSLASH); } else if (state == ONE_DOT) { return realCanonicalize(path, i + 2, FIRST_BACKSLASH); } else if (state == TWO_DOT) { return realCanonicalize(path, i + 3, FIRST_BACKSLASH);
String canonical = CanonicalPathUtils.canonicalize(p); //we don't need to do this for other resources, as the underlying RM will handle it for (VirtualFile overlay : overlays) { VirtualFile child = overlay.getChild(canonical);
private String canonicalize(String s) { if(canonicalizePaths) { return CanonicalPathUtils.canonicalize(s); } return s; }
private String canonicalize(String s) { if(canonicalizePaths) { return CanonicalPathUtils.canonicalize(s); } return s; }
private String getPath(final HttpServletRequest request) { String servletPath; String pathInfo; if (request.getDispatcherType() == DispatcherType.INCLUDE && request.getAttribute(RequestDispatcher.INCLUDE_REQUEST_URI) != null) { pathInfo = (String) request.getAttribute(RequestDispatcher.INCLUDE_PATH_INFO); servletPath = (String) request.getAttribute(RequestDispatcher.INCLUDE_SERVLET_PATH); } else { pathInfo = request.getPathInfo(); servletPath = request.getServletPath(); } String result = pathInfo; if (result == null) { result = CanonicalPathUtils.canonicalize(servletPath); } else if(resolveAgainstContextRoot) { result = servletPath + CanonicalPathUtils.canonicalize(pathInfo); } else { result = CanonicalPathUtils.canonicalize(result); } if ((result == null) || (result.isEmpty())) { result = "/"; } return result; }
private String getPath(final HttpServletRequest request) { String servletPath; String pathInfo; if (request.getDispatcherType() == DispatcherType.INCLUDE && request.getAttribute(RequestDispatcher.INCLUDE_REQUEST_URI) != null) { pathInfo = (String) request.getAttribute(RequestDispatcher.INCLUDE_PATH_INFO); servletPath = (String) request.getAttribute(RequestDispatcher.INCLUDE_SERVLET_PATH); } else { pathInfo = request.getPathInfo(); servletPath = request.getServletPath(); } String result = pathInfo; if (result == null) { result = CanonicalPathUtils.canonicalize(servletPath); } else if (resolveAgainstContextRoot) { result = servletPath + CanonicalPathUtils.canonicalize(pathInfo); } else { result = CanonicalPathUtils.canonicalize(result); } if ((result == null) || (result.isEmpty())) { result = "/"; } return result; }
@Override public RequestDispatcher getRequestDispatcher(final String path) { String realPath; if (path.startsWith("/")) { realPath = path; } else { String current = exchange.getRelativePath(); int lastSlash = current.lastIndexOf("/"); if (lastSlash != -1) { current = current.substring(0, lastSlash + 1); } realPath = CanonicalPathUtils.canonicalize(current + path); } return new RequestDispatcherImpl(realPath, servletContext); }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { boolean handlingRequired = File.separatorChar != '/'; if (handlingRequired) { exchange.setRequestPath(canonicalize(exchange.getRequestPath().replace(File.separatorChar, '/'))); exchange.setRelativePath(canonicalize(exchange.getRelativePath().replace(File.separatorChar, '/'))); exchange.setResolvedPath(canonicalize(exchange.getResolvedPath().replace(File.separatorChar, '/'))); } next.handleRequest(exchange); }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { boolean handlingRequired = File.separatorChar != '/'; if (handlingRequired) { exchange.setRequestPath(canonicalize(exchange.getRequestPath().replace(File.separatorChar, '/'))); exchange.setRelativePath(canonicalize(exchange.getRelativePath().replace(File.separatorChar, '/'))); exchange.setResolvedPath(canonicalize(exchange.getResolvedPath().replace(File.separatorChar, '/'))); } next.handleRequest(exchange); }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { exchange.setRelativePath(CanonicalPathUtils.canonicalize(exchange.getRelativePath())); next.handleRequest(exchange); }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { exchange.setRelativePath(CanonicalPathUtils.canonicalize(exchange.getRelativePath())); next.handleRequest(exchange); }
path = CanonicalPathUtils.canonicalize(path.replace(File.separatorChar, '/'));
path = CanonicalPathUtils.canonicalize(path.replace(File.separatorChar, '/'));
return null; String canonicalPath = CanonicalPathUtils.canonicalize(path); Resource resource; try {
@Override public void handleRequest(HttpServerExchange exchange) throws Exception { String canonicalPath = CanonicalPathUtils.canonicalize((exchange.getRelativePath())); canonicalPath = canonicalPath.split(basePath)[1]; exchange.setRelativePath(canonicalPath); if (serviceClassLoader == null) { super.handleRequest(exchange); } else { canonicalPath = resourcePrefix + canonicalPath; try (final InputStream resourceInputStream = serviceClassLoader.getResourceAsStream(canonicalPath)) { if (resourceInputStream == null) { ResponseCodeHandler.HANDLE_404.handleRequest(exchange); return; } byte[] resourceBytes = IOUtils.toByteArray(resourceInputStream); io.sinistral.proteus.server.MediaType mediaType = io.sinistral.proteus.server.MediaType.getByFileName(canonicalPath); exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, mediaType.toString()); exchange.getResponseSender().send(ByteBuffer.wrap(resourceBytes)); } } }