|
|
|
|
@ -427,8 +427,7 @@ public class UndertowEmbeddedServletContainerFactory
@@ -427,8 +427,7 @@ public class UndertowEmbeddedServletContainerFactory
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private ResourceManager getDocumentRootResourceManager() { |
|
|
|
|
File root = getValidDocumentRoot(); |
|
|
|
|
root = (root != null ? root : createTempDir("undertow-docbase")); |
|
|
|
|
File root = getCanonicalDocumentRoot(); |
|
|
|
|
if (root.isDirectory()) { |
|
|
|
|
return new FileResourceManager(root, 0); |
|
|
|
|
} |
|
|
|
|
@ -438,6 +437,22 @@ public class UndertowEmbeddedServletContainerFactory
@@ -438,6 +437,22 @@ public class UndertowEmbeddedServletContainerFactory
|
|
|
|
|
return ResourceManager.EMPTY_RESOURCE_MANAGER; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Return the document root in canonical form. Undertow uses File#getCanonicalFile() |
|
|
|
|
* to determine whether a resource has been requested using the proper case but on |
|
|
|
|
* Windows {@code java.io.tmpdir} may be set as a tilde-compressed pathname. |
|
|
|
|
*/ |
|
|
|
|
private File getCanonicalDocumentRoot() { |
|
|
|
|
try { |
|
|
|
|
File root = getValidDocumentRoot(); |
|
|
|
|
root = (root != null ? root : createTempDir("undertow-docbase")); |
|
|
|
|
return root.getCanonicalFile(); |
|
|
|
|
} |
|
|
|
|
catch (IOException e) { |
|
|
|
|
throw new IllegalStateException("Cannot get canonical document root", e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void configureErrorPages(DeploymentInfo servletBuilder) { |
|
|
|
|
for (ErrorPage errorPage : getErrorPages()) { |
|
|
|
|
servletBuilder.addErrorPage(getUndertowErrorPage(errorPage)); |
|
|
|
|
|