@Override public boolean isReadable() { return this.original.isReadable(); }
@Override public boolean isReadable() { return this.original.isReadable(); }
@Override public boolean isReadable() { return this.gzipped.isReadable(); }
@Override public boolean isReadable() { return this.gzipped.isReadable(); }
@Override public boolean isReadable() { return this.encoded.isReadable(); }
@Override public boolean isReadable() { return this.encoded.isReadable(); }
@Override public boolean isReadable() { return this.encoded.isReadable(); }
@Override public boolean isReadable() { return this.gzipped.isReadable(); }
@Override public boolean isReadable() { return this.original.isReadable(); }
/** * Find the resource under the given location. * <p>The default implementation checks if there is a readable * {@code Resource} for the given path relative to the location. * @param resourcePath the path to the resource * @param location the location to check * @return the resource, or {@code null} if none found */ @Nullable protected Resource getResource(String resourcePath, Resource location) throws IOException { Resource resource = location.createRelative(resourcePath); if (resource.isReadable()) { if (checkResource(resource, location)) { return resource; } else if (logger.isWarnEnabled()) { Resource[] allowedLocations = getAllowedLocations(); logger.warn("Resource path \"" + resourcePath + "\" was successfully resolved " + "but resource \"" + resource.getURL() + "\" is neither under the " + "current location \"" + location.getURL() + "\" nor under any of the " + "allowed locations " + (allowedLocations != null ? Arrays.asList(allowedLocations) : "[]")); } } return null; }
try { Resource resource = location.createRelative(resourcePath); if (resource.isReadable()) { if (checkResource(resource, location)) { return Mono.just(resource);
@Override public Resource loadAsResource(String keyName) { try { URL url = new URL(getBaseUrl() + keyName); Resource resource = new UrlResource(url); if (resource.exists() || resource.isReadable()) { return resource; } else { return null; } } catch (MalformedURLException e) { e.printStackTrace(); return null; } }
@Override public Resource loadAsResource(String keyName) { try { URL url = new URL(generateUrl(keyName)); Resource resource = new UrlResource(url); if (resource.exists() || resource.isReadable()) { return resource; } else { return null; } } catch (MalformedURLException e) { e.printStackTrace(); return null; } }
@Override public Resource loadAsResource(String keyName) { try { URL url = new URL(getBaseUrl() + keyName); Resource resource = new UrlResource(url); if (resource.exists() || resource.isReadable()) { return resource; } else { return null; } } catch (MalformedURLException e) { e.printStackTrace(); return null; } }
@Override public Resource loadAsResource(String filename) { try { Path file = load(filename); Resource resource = new UrlResource(file.toUri()); if (resource.exists() || resource.isReadable()) { return resource; } else { return null; } } catch (MalformedURLException e) { e.printStackTrace(); return null; } }
@Override public Mono<Resource> apply(ServerRequest request) { PathContainer pathContainer = request.pathContainer(); if (!this.pattern.matches(pathContainer)) { return Mono.empty(); } pathContainer = this.pattern.extractPathWithinPattern(pathContainer); String path = processPath(pathContainer.value()); if (path.contains("%")) { path = StringUtils.uriDecode(path, StandardCharsets.UTF_8); } if (!StringUtils.hasLength(path) || isInvalidPath(path)) { return Mono.empty(); } try { Resource resource = this.location.createRelative(path); if (resource.exists() && resource.isReadable() && isResourceUnderLocation(resource)) { return Mono.just(resource); } else { return Mono.empty(); } } catch (IOException ex) { throw new UncheckedIOException(ex); } }
@Test public void directoryNotReadable() { Resource fileDir = new ClassPathResource("org/springframework/core"); assertTrue(fileDir.exists()); assertFalse(fileDir.isReadable()); Resource jarDir = new ClassPathResource("reactor/core"); assertTrue(jarDir.exists()); assertFalse(jarDir.isReadable()); }
MetadataReaderFactory readerFactory = new CachingMetadataReaderFactory(this.resourcePatternResolver); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader reader = readerFactory.getMetadataReader(resource); String className = reader.getClassMetadata().getClassName();
return Mono.from(inputStream) .flatMapMany(region -> { if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable")); if (!region.getResource().isReadable()) { return Flux.error(new EncodingException("Resource " + region.getResource() + " is not readable"));
assertTrue(resource.getURL().getFile().endsWith("Resource.class")); assertTrue(resource.exists()); assertTrue(resource.isReadable()); assertTrue(resource.contentLength() > 0); assertTrue(resource.lastModified() > 0); assertTrue(relative1.getURL().getFile().endsWith("ClassPathResource.class")); assertTrue(relative1.exists()); assertTrue(relative1.isReadable()); assertTrue(relative1.contentLength() > 0); assertTrue(relative1.lastModified() > 0); assertTrue(relative2.getURL().getFile().endsWith("ResourcePatternResolver.class")); assertTrue(relative2.exists()); assertTrue(relative2.isReadable()); assertTrue(relative2.contentLength() > 0); assertTrue(relative2.lastModified() > 0); assertTrue(relative3.getURL().getFile().endsWith("SpringVersion.class")); assertTrue(relative3.exists()); assertTrue(relative3.isReadable()); assertTrue(relative3.contentLength() > 0); assertTrue(relative3.lastModified() > 0); assertFalse(relative4.isReadable()); try { relative4.contentLength();