-
Notifications
You must be signed in to change notification settings - Fork 41.7k
Closed
Description
we map url: '/s/com-huawei-dcp-deploy-deploy-service/v1/api/file/download/main/os/mys/larg%25e_1.0.0.zip' to downloading the special file named 'larg%e_1.0.0.zip' ,
but it throws
java.lang.IllegalArgumentException: null
at sun.net.www.ParseUtil.decode(Unknown Source)
at java.net.JarURLConnection.parseSpecs(Unknown Source)
at java.net.JarURLConnection.<init>(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection.<init>(Unknown Source)
at sun.net.www.protocol.jar.Handler.openConnection(Unknown Source)
at java.net.URL.openConnection(Unknown Source)
at io.undertow.server.handlers.resource.URLResource.openConnection(URLResource.java:86)
at io.undertow.server.handlers.resource.URLResource.getContentLength(URLResource.java:273)
becuase '%25' is decode to '%', and URLResource use the path '/s/com-huawei-dcp-deploy-deploy-service/v1/api/file/download/main/os/mys/larg%e_1.0.0.zip', the class ParseUtils throws the IllegaglArgumentException when decoding '%e_'
bug is in the class org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory$MetaInfResourcesResourceManager
private URLResource getMetaInfResource(URL resourceJar, String path) {
try {
URL resourceUrl = new URL(resourceJar + "META-INF/resources" + path);
URLResource resource = new URLResource(resourceUrl, path);
if (resource.getContentLength() < 0) {
return null;
}
return resource;
}
catch (MalformedURLException ex) {
return null;
}
}
Metadata
Metadata
Assignees
Labels
type: bugA general bugA general bug