Skip to content

Commit 5911133

Browse files
author
Patrick Flynn
authored
Fix UpdaterTests on mac. (#269)
* Fix UpdaterTests on mac. Signed-off-by: Patrick Flynn <[email protected]> * remove duplicate statement Signed-off-by: Patrick Flynn <[email protected]> * fix comment formatting Signed-off-by: Patrick Flynn <[email protected]> Signed-off-by: Patrick Flynn <[email protected]>
1 parent 9c75db0 commit 5911133

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

sigstore-java/src/test/java/dev/sigstore/tuf/UpdaterTest.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
import org.apache.commons.lang3.tuple.Pair;
4747
import org.eclipse.jetty.server.Server;
4848
import org.eclipse.jetty.server.ServerConnector;
49+
import org.eclipse.jetty.server.SymlinkAllowedResourceAliasChecker;
50+
import org.eclipse.jetty.server.handler.ContextHandler;
4951
import org.eclipse.jetty.server.handler.ResourceHandler;
5052
import org.eclipse.jetty.util.resource.Resource;
5153
import org.jetbrains.annotations.NotNull;
@@ -67,11 +69,24 @@ static void startRemoteResourceServer() throws Exception {
6769
ServerConnector connector = new ServerConnector(remote);
6870
connector.setHost("127.0.0.1");
6971
remote.addConnector(connector);
70-
ResourceHandler handler = new ResourceHandler();
71-
handler.setBaseResource(Resource.newResource(localMirrorPath.toUri()));
72-
handler.setDirectoriesListed(true);
73-
handler.setAcceptRanges(true);
74-
remote.setHandler(handler);
72+
73+
ResourceHandler resourceHandler = new ResourceHandler();
74+
Resource resourceBase = Resource.newResource(localMirrorPath.toAbsolutePath());
75+
resourceHandler.setBaseResource(resourceBase);
76+
resourceHandler.setDirectoriesListed(true);
77+
resourceHandler.setDirAllowed(true);
78+
resourceHandler.setAcceptRanges(true);
79+
ContextHandler symlinkAllowingHandler = new ContextHandler();
80+
symlinkAllowingHandler.setContextPath("/");
81+
symlinkAllowingHandler.setAllowNullPathInfo(true);
82+
symlinkAllowingHandler.setHandler(resourceHandler);
83+
symlinkAllowingHandler.setBaseResource(resourceBase);
84+
// the @TempDir locations on OS X are under /var/.. which is a symlink to /private/var and are
85+
// not followed by default in Jetty for security reasons.
86+
symlinkAllowingHandler.clearAliasChecks();
87+
symlinkAllowingHandler.addAliasCheck(
88+
new SymlinkAllowedResourceAliasChecker(symlinkAllowingHandler));
89+
remote.setHandler(symlinkAllowingHandler);
7590
remote.start();
7691
remoteUrl = "http://" + connector.getHost() + ":" + connector.getLocalPort();
7792
System.out.println("TUF local server listening on: " + remoteUrl);

0 commit comments

Comments
 (0)