Allow embedded resource URLs if external resources are disabled

This commit is contained in:
Oliver Schmidtmer 2021-03-26 16:05:21 +01:00
parent da45c5783d
commit 96223f9f9f
3 changed files with 117 additions and 1 deletions

View File

@ -655,7 +655,7 @@ public class SVGImageReader extends ImageReaderBase {
if (allowExternalResources) {
return super.getExternalResourceSecurity(resourceURL, docURL);
}
return new NoLoadExternalResourceSecurity();
return new EmbededExternalResourceSecurity(resourceURL);
}
}
}

View File

@ -297,6 +297,25 @@ public class SVGImageReaderTest extends ImageReaderAbstractTest<SVGImageReader>
}
}
@Test
public void testReadEmbeddedWithDisallowExternalResources() throws IOException{
// File using "data:" URLs for embedded resources
URL resource = getClassLoaderResource("/svg/embedded-data-resource.svg");
SVGImageReader reader = createReader();
TestData data = new TestData(resource, (Dimension) null);
try (ImageInputStream stream = data.getInputStream()) {
reader.setInput(stream);
SVGReadParam param = reader.getDefaultReadParam();
param.setAllowExternalResources(false);
reader.read(0, param);
}
finally {
reader.dispose();
}
}
@Test(expected = SecurityException.class)
public void testDisallowedExternalResources() throws URISyntaxException, IOException {
// system-property set to true in surefire-plugin-settings in the pom

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 92 KiB