Prevent URLResource and JarURLConnection from leaking an InputStream

Fixes gh-17121
This commit is contained in:
Andy Wilkinson
2019-06-12 12:53:16 +01:00
parent df9a6a0f4f
commit 4222c5b8ce

View File

@@ -26,6 +26,8 @@ import io.undertow.server.handlers.resource.ResourceChangeListener;
import io.undertow.server.handlers.resource.ResourceManager;
import io.undertow.server.handlers.resource.URLResource;
import org.springframework.util.StringUtils;
/**
* {@link ResourceManager} for JAR resources.
*
@@ -48,7 +50,7 @@ class JarResourceManager implements ResourceManager {
public Resource getResource(String path) throws IOException {
URL url = new URL("jar:file:" + this.jarPath + "!" + (path.startsWith("/") ? path : "/" + path));
URLResource resource = new URLResource(url, path);
if (resource.getContentLength() < 0) {
if (StringUtils.hasText(path) && !"/".equals(path) && resource.getContentLength() < 0) {
return null;
}
return resource;