My setup is a bit complicated, as I use JRuby with Warbler which uses Jetty 9.2.9 underneath.
Now, the docs for enabling symlinks in Jetty tell you to add this to WEB-INF/jetty-web.xml
:
<!-- Allow symbolic links --> <Call name="addAliasCheck"> <Arg><New class="org.eclipse.jetty.server.handler.AllowSymLinkAliasChecker"/></Arg> </Call>
However, as far as I can tell from searching through XML files on GitHub which use AllowSymLinkAliasChecker
, this snippet has to be used within a <Configure id="wac" class="org.eclipse.jetty.webapp.WebAppContext">
element.
Through Warbler I have access to only three files:
web.xml
which has<web-app>
elementwebserver.xml
which has<Configure class="org.eclipse.jetty.server.Server">
elementwebserver.properties
which defines a bunch of args for the Jetty runner
So my question is, with access to only these three files (and possibly being able to add more of them to the WEB-INF
directory), how can I make Jetty follow symlinks?
Advertisement
Answer
Uff, okay, so apparently if I need to configure WebAppContext, I can just add jetty-web.xml
to my WEB-INF
folder and Jetty will automatically use it.
So in the end my jetty-web.xml
looks like this:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <!-- https://www.eclipse.org/jetty/documentation/jetty-9/index.html#jetty-web-xml-config --> <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <!-- https://www.eclipse.org/jetty/documentation/jetty-9/index.html#file-alias-serving --> <Call name="addAliasCheck"> <Arg> <New class="org.eclipse.jetty.server.handler.AllowSymLinkAliasChecker" /> </Arg> </Call> </Configure>