This is an automated email from the ASF dual-hosted git repository.
jialiang pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push:
new 3410983426 AMBARI-26530: Allow Jetty to serve symlinked resource files
(#4041)
3410983426 is described below
commit 341098342629a34ed10c0f8d3081c829ab8b9ffd
Author: Dahyun (Dany) <[email protected]>
AuthorDate: Sun Aug 10 23:21:25 2025 -0400
AMBARI-26530: Allow Jetty to serve symlinked resource files (#4041)
---
.../main/java/org/apache/ambari/server/controller/AmbariServer.java | 6 ++++++
1 file changed, 6 insertions(+)
diff --git
a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
index a56be88346..9fbf939b88 100644
---
a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
+++
b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
@@ -148,12 +148,14 @@ import org.eclipse.jetty.server.handler.RequestLogHandler;
import org.eclipse.jetty.server.handler.gzip.GzipHandler;
import org.eclipse.jetty.server.session.DefaultSessionIdManager;
import org.eclipse.jetty.server.session.SessionHandler;
+import org.eclipse.jetty.server.SymlinkAllowedResourceAliasChecker;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
+import org.eclipse.jetty.util.resource.Resource;
import
org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletContainer;
@@ -521,6 +523,10 @@ public class AmbariServer {
root.addServlet(resources, "/resources/*");
resources.setInitOrder(5);
+ // Allow symlinked files in Jetty 11
+ Resource baseResource =
Resource.newResource(resourcesDirectory.getParentFile().getAbsolutePath());
+ root.addAliasCheck(new SymlinkAllowedResourceAliasChecker(root,
baseResource));
+
if (configs.csrfProtectionEnabled()) {
sh.setInitParameter("org.glassfish.jersey.server.ContainerRequestFilter",
"org.apache.ambari.server.api.AmbariCsrfProtectionFilter");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]