From 90730061437da5904817984ba39ba0fe595b4877 Mon Sep 17 00:00:00 2001 From: Kamlendra Date: Sun, 15 Mar 2026 15:26:14 -0700 Subject: [PATCH 1/4] SOLR-18123: Reduce test reliance on ALLOW_PATHS_SYSPROP --- .../admin/ShowFileRequestHandlerTest.java | 5 --- .../handler/admin/api/RenameCoreAPITest.java | 7 +--- .../DistributedDebugComponentTest.java | 5 --- .../TestPrometheusResponseWriter.java | 4 -- ...rentUpdateJettySolrClientBadInputTest.java | 5 --- .../HttpJettySolrClientCompatibilityTest.java | 10 ----- .../jetty/HttpJettySolrClientProxyTest.java | 7 ---- .../solr/client/solrj/SolrExampleTests.java | 4 -- .../solr/client/solrj/TestBatchUpdate.java | 6 --- .../client/solrj/TestSolrJErrorHandling.java | 6 --- .../ConcurrentUpdateSolrClientTestBase.java | 6 --- .../impl/HttpSolrClientBadInputTest.java | 6 --- .../solrj/impl/HttpSolrClientTestBase.java | 5 --- .../impl/LBHttpSolrClientBadInputTest.java | 6 --- .../InputStreamResponseParserTest.java | 5 --- .../solrj/response/TestSuggesterResponse.java | 5 --- .../java/org/apache/solr/SolrTestCase.java | 23 +++++++++++ .../solr/TestFrameworkAllowPathsTest.java | 41 +++++++++++++++++++ .../solrj/apache/BasicHttpSolrClientTest.java | 5 --- ...oncurrentUpdateSolrClientBadInputTest.java | 5 --- .../ConcurrentUpdateSolrClientTest.java | 6 --- .../apache/HttpSolrClientConPoolTest.java | 5 --- 22 files changed, 65 insertions(+), 112 deletions(-) create mode 100644 solr/test-framework/src/test/org/apache/solr/TestFrameworkAllowPathsTest.java diff --git a/solr/core/src/test/org/apache/solr/handler/admin/ShowFileRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/ShowFileRequestHandlerTest.java index a22f7843137..6cf905e421e 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/ShowFileRequestHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/ShowFileRequestHandlerTest.java @@ -16,8 +16,6 @@ */ package org.apache.solr.handler.admin; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.io.IOException; import java.io.InputStream; import java.util.Set; @@ -34,7 +32,6 @@ import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.util.ContentStreamBase; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrCore; import org.apache.solr.request.SolrQueryRequest; @@ -52,8 +49,6 @@ public class ShowFileRequestHandlerTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection("collection1") diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java index b999e2b8cf5..fd9824c3f56 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java @@ -16,7 +16,6 @@ */ package org.apache.solr.handler.admin.api; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; import static org.hamcrest.Matchers.containsString; import java.nio.charset.StandardCharsets; @@ -26,7 +25,6 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.request.CoresApi; import org.apache.solr.client.solrj.request.GenericV2SolrRequest; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -47,10 +45,7 @@ public class RenameCoreAPITest extends SolrTestCaseJ4 { @ClassRule public static SolrJettyTestRule solrTestRule = new SolrJettyTestRule(); @BeforeClass - public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); - solrTestRule.startSolr(createTempDir()); + public static void beforeTest() throws Exception { solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection(DEFAULT_TEST_CORENAME) .withConfigSet(ExternalPaths.DEFAULT_CONFIGSET) diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java index 0295bd6a5eb..5384f9e88e5 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java @@ -16,8 +16,6 @@ */ package org.apache.solr.handler.component; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -35,7 +33,6 @@ import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.ShardParams; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.response.SolrQueryResponse; import org.apache.solr.util.ExternalPaths; @@ -57,8 +54,6 @@ public class DistributedDebugComponentTest extends SolrTestCaseJ4 { @BeforeClass public static void createThings() throws Exception { systemSetPropertyEnableUrlAllowList(false); - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir()); solrTestRule diff --git a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java index a8250a1ba3a..48c38429ccd 100644 --- a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java +++ b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java @@ -17,7 +17,6 @@ package org.apache.solr.response; import static org.apache.solr.client.solrj.response.InputStreamResponseParser.STREAM_KEY; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; import java.io.InputStream; import java.lang.invoke.MethodHandles; @@ -32,7 +31,6 @@ import org.apache.solr.client.solrj.request.MetricsRequest; import org.apache.solr.client.solrj.response.InputStreamResponseParser; import org.apache.solr.common.params.ModifiableSolrParams; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; @@ -49,8 +47,6 @@ public class TestPrometheusResponseWriter extends SolrTestCaseJ4 { @BeforeClass public static void beforeClass() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(LuceneTestCase.createTempDir()); solrTestRule.newCollection("core1").withConfigSet(ExternalPaths.DEFAULT_CONFIGSET).create(); solrTestRule.newCollection("core2").withConfigSet(ExternalPaths.DEFAULT_CONFIGSET).create(); diff --git a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java index 1c78cbc6463..1dc7a65630e 100644 --- a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java +++ b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java @@ -17,12 +17,9 @@ package org.apache.solr.client.solrj.jetty; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.util.ArrayList; import java.util.List; import org.apache.solr.SolrTestCaseJ4; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -41,8 +38,6 @@ public class ConcurrentUpdateJettySolrClientBadInputTest extends SolrTestCaseJ4 @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java index b5aafdee9ba..b7aacec46c7 100644 --- a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java +++ b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java @@ -17,15 +17,12 @@ package org.apache.solr.client.solrj.jetty; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.util.Properties; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.request.SolrQuery; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.embedded.JettyConfig; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.LogLevel; @@ -60,8 +57,6 @@ public void testConnectToOldNodesUsingHttp1() throws Exception { .withServlet(new ServletHolder(DebugServlet.class), "/debug/*") .useOnlyHttp1(true) .build(); - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) @@ -89,8 +84,6 @@ public void testConnectToNewNodesUsingHttp1() throws Exception { .withServlet(new ServletHolder(DebugServlet.class), "/debug/*") .useOnlyHttp1(false) .build(); - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) @@ -121,9 +114,6 @@ public void testConnectToOldNodesUsingHttp2() throws Exception { .withServlet(new ServletHolder(DebugServlet.class), "/debug/*") .useOnlyHttp1(true) .build(); - - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java index 20d44bc107d..bad25fe65e5 100644 --- a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java +++ b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java @@ -16,8 +16,6 @@ */ package org.apache.solr.client.solrj.jetty; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import com.carrotsearch.randomizedtesting.RandomizedTest; import java.util.Arrays; import java.util.Objects; @@ -28,7 +26,6 @@ import org.apache.solr.client.solrj.impl.HttpSolrClientBase; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.common.SolrInputDocument; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SocketProxy; import org.apache.solr.util.SolrJettyTestRule; @@ -46,10 +43,6 @@ public class HttpJettySolrClientProxyTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { RandomizedTest.assumeFalse(sslConfig.isSSLMode()); - - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, - ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.enableProxy(); solrTestRule.startSolr(createTempDir()); // Actually only need extremely minimal configSet but just use the default diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java index 4f7c4029e12..38c596e6d49 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java @@ -17,7 +17,6 @@ package org.apache.solr.client.solrj; import static org.apache.solr.common.params.UpdateParams.ASSUME_CONTENT_TYPE; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.core.StringContains.containsString; @@ -77,7 +76,6 @@ import org.apache.solr.common.params.FacetParams; import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.util.ContentStreamBase; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.Pair; import org.apache.solr.util.ExternalPaths; @@ -101,8 +99,6 @@ public abstract class SolrExampleTests extends SolrExampleTestsBase { @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java b/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java index 85dd1c8266d..32165843828 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java @@ -16,8 +16,6 @@ */ package org.apache.solr.client.solrj; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.io.IOException; import java.util.Iterator; import org.apache.solr.SolrTestCaseJ4; @@ -29,7 +27,6 @@ import org.apache.solr.client.solrj.request.XMLRequestWriter; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrInputDocument; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -48,9 +45,6 @@ public class TestBatchUpdate extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, - ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection("collection1") diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java b/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java index 2a5ca071267..7795057a109 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java @@ -16,8 +16,6 @@ */ package org.apache.solr.client.solrj; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; @@ -44,7 +42,6 @@ import org.apache.solr.client.solrj.request.XMLRequestWriter; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrInputDocument; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -63,9 +60,6 @@ public class TestSolrJErrorHandling extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, - ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection("collection1") diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTestBase.java index 4c2eca633c9..a8ee4a401b9 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTestBase.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTestBase.java @@ -17,8 +17,6 @@ package org.apache.solr.client.solrj.impl; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; @@ -46,7 +44,6 @@ import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.common.SolrInputDocument; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.ExecutorUtil; import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.solr.embedded.JettyConfig; @@ -195,9 +192,6 @@ public void run() { public static void beforeTest() throws Exception { JettyConfig jettyConfig = JettyConfig.builder().withServlet(new ServletHolder(TestServlet.class), "/cuss/*").build(); - - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java index 8eaa9feb82a..37c1dc0211f 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java @@ -17,14 +17,11 @@ package org.apache.solr.client.solrj.impl; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.util.ArrayList; import java.util.List; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.apache.HttpSolrClient; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -42,9 +39,6 @@ public class HttpSolrClientBadInputTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, - ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection("collection1") diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java index 73d6d19ccfe..0fe57ad5b5a 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java @@ -17,7 +17,6 @@ package org.apache.solr.client.solrj.impl; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; import static org.hamcrest.CoreMatchers.instanceOf; import java.io.IOException; @@ -53,7 +52,6 @@ import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.MapSolrParams; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.IOUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.embedded.JettyConfig; @@ -93,9 +91,6 @@ public static void beforeTest() throws Exception { .withServlet(new ServletHolder(SlowStreamServlet.class), SLOW_STREAM_SERVLET_REGEX) .withSSLConfig(sslConfig.buildServerSSLConfig()) .build(); - - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java index 647f912b11d..df69c1938d8 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java @@ -17,14 +17,11 @@ package org.apache.solr.client.solrj.impl; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.util.ArrayList; import java.util.List; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.apache.LBHttpSolrClient; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -41,9 +38,6 @@ public class LBHttpSolrClientBadInputTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, - ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection("collection1") diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/response/InputStreamResponseParserTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/response/InputStreamResponseParserTest.java index 3332e82aa1c..2c9eb2b71e5 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/response/InputStreamResponseParserTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/response/InputStreamResponseParserTest.java @@ -16,8 +16,6 @@ */ package org.apache.solr.client.solrj.response; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -31,7 +29,6 @@ import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrInputDocument; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; @@ -51,8 +48,6 @@ private static InputStream getResponse() { @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java b/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java index cf66ac7a63f..5f35eace256 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java @@ -16,8 +16,6 @@ */ package org.apache.solr.client.solrj.response; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.io.IOException; import java.util.List; import java.util.Map; @@ -29,7 +27,6 @@ import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.CommonParams; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -43,8 +40,6 @@ public class TestSuggesterResponse extends SolrTestCaseJ4 { @BeforeClass public static void beforeClass() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java index a29e3d0da43..b88af001dc7 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java @@ -36,6 +36,7 @@ import org.apache.lucene.tests.util.VerifyTestClassNamingConvention; import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.ObjectReleaseTracker; +import org.apache.solr.core.CoreContainer; import org.apache.solr.servlet.SolrDispatchFilter; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.LogLevelTestRule; @@ -148,6 +149,28 @@ public static void beforeSolrTestCase() { ExternalPaths.DEFAULT_CONFIGSET); } + final String allowPaths = EnvUtils.getProperty(CoreContainer.ALLOW_PATHS_SYSPROP); + if (null != allowPaths) { + log.info( + "Test env includes allow-paths system property '{}'='{}'", + CoreContainer.ALLOW_PATHS_SYSPROP, + allowPaths); + } else if (Files.isReadable(ExternalPaths.SERVER_HOME) + && Files.isDirectory(ExternalPaths.SERVER_HOME)) { + log.info( + "Setting '{}' system property to test-framework derived value of '{}'", + CoreContainer.ALLOW_PATHS_SYSPROP, + ExternalPaths.SERVER_HOME); + System.setProperty(CoreContainer.ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toString()); + } else { + log.warn( + "System property '{}' is not already set, but test-framework derived value ('{}') either " + + "does not exist or is not a readable directory; tests may need to set the property " + + "explicitly when loading external configsets", + CoreContainer.ALLOW_PATHS_SYSPROP, + ExternalPaths.SERVER_HOME); + } + // set solr.install.dir needed by some test configs outside the test sandbox (!) if (ExternalPaths.SOURCE_HOME != null) { System.setProperty("solr.install.dir", ExternalPaths.SOURCE_HOME.toString()); diff --git a/solr/test-framework/src/test/org/apache/solr/TestFrameworkAllowPathsTest.java b/solr/test-framework/src/test/org/apache/solr/TestFrameworkAllowPathsTest.java new file mode 100644 index 00000000000..89b877aa30d --- /dev/null +++ b/solr/test-framework/src/test/org/apache/solr/TestFrameworkAllowPathsTest.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.solr; + +import org.apache.solr.util.ExternalPaths; +import org.apache.solr.util.SolrJettyTestRule; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Test; + +public class TestFrameworkAllowPathsTest extends SolrTestCaseJ4 { + + @ClassRule public static final SolrJettyTestRule solrTestRule = new SolrJettyTestRule(); + + @BeforeClass + public static void beforeClass() throws Exception { + solrTestRule.startSolr(createTempDir()); + solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); + } + + @Test + public void testExternalConfigsetIsAllowedByDefault() { + var coreContainer = solrTestRule.getCoreContainer(); + coreContainer.assertPathAllowed(ExternalPaths.SERVER_HOME); + assertTrue(coreContainer.getAllowPaths().contains(ExternalPaths.SERVER_HOME.normalize())); + } +} diff --git a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/BasicHttpSolrClientTest.java b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/BasicHttpSolrClientTest.java index 6e5320ae7ae..7855a676d58 100644 --- a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/BasicHttpSolrClientTest.java +++ b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/BasicHttpSolrClientTest.java @@ -16,8 +16,6 @@ */ package org.apache.solr.client.solrj.apache; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import jakarta.servlet.http.Cookie; import java.io.IOException; import java.io.InputStream; @@ -68,7 +66,6 @@ import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.ModifiableSolrParams; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.embedded.JettyConfig; import org.apache.solr.util.ExternalPaths; @@ -100,8 +97,6 @@ public static void beforeTest() throws Exception { .withServlet(new ServletHolder(DebugServlet.class), "/debug/*") .withServlet(new ServletHolder(SlowStreamServlet.class), "/slowStream/*") .build(); - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/ConcurrentUpdateSolrClientBadInputTest.java b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/ConcurrentUpdateSolrClientBadInputTest.java index 8fec38bf318..276249ae0a2 100644 --- a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/ConcurrentUpdateSolrClientBadInputTest.java +++ b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/ConcurrentUpdateSolrClientBadInputTest.java @@ -17,13 +17,10 @@ package org.apache.solr.client.solrj.apache; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.util.ArrayList; import java.util.List; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -42,8 +39,6 @@ public class ConcurrentUpdateSolrClientBadInputTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/ConcurrentUpdateSolrClientTest.java b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/ConcurrentUpdateSolrClientTest.java index 48dc85a8d03..7de8576770a 100644 --- a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/ConcurrentUpdateSolrClientTest.java +++ b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/ConcurrentUpdateSolrClientTest.java @@ -16,8 +16,6 @@ */ package org.apache.solr.client.solrj.apache; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; @@ -41,7 +39,6 @@ import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.common.SolrInputDocument; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.ExecutorUtil; import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.solr.embedded.JettyConfig; @@ -139,9 +136,6 @@ public void update( public static void beforeTest() throws Exception { JettyConfig jettyConfig = JettyConfig.builder().withServlet(new ServletHolder(TestServlet.class), "/cuss/*").build(); - - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) diff --git a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/HttpSolrClientConPoolTest.java b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/HttpSolrClientConPoolTest.java index cbce7fe26cf..52be3248596 100644 --- a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/HttpSolrClientConPoolTest.java +++ b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/HttpSolrClientConPoolTest.java @@ -16,8 +16,6 @@ */ package org.apache.solr.client.solrj.apache; -import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; - import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -34,7 +32,6 @@ import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.ModifiableSolrParams; -import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.ExecutorUtil; import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.solr.util.ExternalPaths; @@ -51,8 +48,6 @@ public class HttpSolrClientConPoolTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws SolrServerException, IOException { - EnvUtils.setProperty( - ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir()); solrTestRule .newCollection(DEFAULT_TEST_COLLECTION_NAME) From c7814df459e71106cf5208e780e015daf6e20776 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Wed, 18 Mar 2026 07:47:31 -0400 Subject: [PATCH 2/4] tidy --- .../org/apache/solr/handler/admin/api/RenameCoreAPITest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java index 651c3bc2b4d..5a318540026 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java @@ -45,7 +45,8 @@ public class RenameCoreAPITest extends SolrTestCaseJ4 { @ClassRule public static SolrJettyTestRule solrTestRule = new SolrJettyTestRule(); @BeforeClass - public static void beforeTest() throws Exception { solrTestRule.startSolr(createTempDir()); + public static void beforeTest() throws Exception { + solrTestRule.startSolr(createTempDir()); solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.DEFAULT_CONFIGSET).create(); } From ed3c3a36c473656c19a094a8a59b6d771435cbef Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Wed, 18 Mar 2026 08:13:43 -0400 Subject: [PATCH 3/4] Fix merge error --- .../org/apache/solr/handler/admin/api/RenameCoreAPITest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java index 5a318540026..f3c2b82207a 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java @@ -46,7 +46,6 @@ public class RenameCoreAPITest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { - solrTestRule.startSolr(createTempDir()); solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.DEFAULT_CONFIGSET).create(); } From 0161fb70dd1acff7f3f8c38c63fe8874aa5628ed Mon Sep 17 00:00:00 2001 From: openworld-maker <264752095+openworld-maker@users.noreply.github.com> Date: Sun, 26 Apr 2026 15:51:54 -0700 Subject: [PATCH 4/4] SOLR-18123: move allow-paths setup from SolrTestCase to affected tests --- .../admin/ShowFileRequestHandlerTest.java | 5 +++ .../handler/admin/api/RenameCoreAPITest.java | 4 ++ .../DistributedDebugComponentTest.java | 5 +++ .../TestPrometheusResponseWriter.java | 4 ++ ...rentUpdateJettySolrClientBadInputTest.java | 5 +++ .../HttpJettySolrClientCompatibilityTest.java | 10 +++++ .../jetty/HttpJettySolrClientProxyTest.java | 7 ++++ .../solr/client/solrj/SolrExampleTests.java | 4 ++ .../solr/client/solrj/TestBatchUpdate.java | 6 +++ .../client/solrj/TestSolrJErrorHandling.java | 6 +++ .../ConcurrentUpdateSolrClientTestBase.java | 6 +++ .../impl/HttpSolrClientBadInputTest.java | 6 +++ .../solrj/impl/HttpSolrClientTestBase.java | 4 ++ .../impl/LBHttpSolrClientBadInputTest.java | 6 +++ .../InputStreamResponseParserTest.java | 5 +++ .../solrj/response/TestSuggesterResponse.java | 5 +++ .../java/org/apache/solr/SolrTestCase.java | 23 ----------- .../solr/TestFrameworkAllowPathsTest.java | 41 ------------------- 18 files changed, 88 insertions(+), 64 deletions(-) delete mode 100644 solr/test-framework/src/test/org/apache/solr/TestFrameworkAllowPathsTest.java diff --git a/solr/core/src/test/org/apache/solr/handler/admin/ShowFileRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/ShowFileRequestHandlerTest.java index 5dc080c6db2..69f3108ba8a 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/ShowFileRequestHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/ShowFileRequestHandlerTest.java @@ -16,6 +16,8 @@ */ package org.apache.solr.handler.admin; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.io.IOException; import java.io.InputStream; import java.util.Set; @@ -32,6 +34,7 @@ import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.util.ContentStreamBase; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrCore; import org.apache.solr.request.SolrQueryRequest; @@ -49,6 +52,8 @@ public class ShowFileRequestHandlerTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.DEFAULT_CONFIGSET).create(); } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java index f3c2b82207a..d62d9bf4dd6 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/RenameCoreAPITest.java @@ -16,6 +16,7 @@ */ package org.apache.solr.handler.admin.api; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; import static org.hamcrest.Matchers.containsString; import java.nio.charset.StandardCharsets; @@ -25,6 +26,7 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.request.CoresApi; import org.apache.solr.client.solrj.request.GenericV2SolrRequest; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -46,6 +48,8 @@ public class RenameCoreAPITest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.DEFAULT_CONFIGSET).create(); } diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java index 3d3822c4287..5953a970cd0 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java @@ -16,6 +16,8 @@ */ package org.apache.solr.handler.component; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -33,6 +35,7 @@ import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.ShardParams; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.response.SolrQueryResponse; import org.apache.solr.util.ExternalPaths; @@ -54,6 +57,8 @@ public class DistributedDebugComponentTest extends SolrTestCaseJ4 { @BeforeClass public static void createThings() throws Exception { systemSetPropertyEnableUrlAllowList(false); + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(); solrTestRule diff --git a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java index c8a5d220848..f229b01ac67 100644 --- a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java +++ b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java @@ -17,6 +17,7 @@ package org.apache.solr.response; import static org.apache.solr.client.solrj.response.InputStreamResponseParser.STREAM_KEY; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; import java.io.InputStream; import java.lang.invoke.MethodHandles; @@ -30,6 +31,7 @@ import org.apache.solr.client.solrj.request.MetricsRequest; import org.apache.solr.client.solrj.response.InputStreamResponseParser; import org.apache.solr.common.params.ModifiableSolrParams; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; @@ -46,6 +48,8 @@ public class TestPrometheusResponseWriter extends SolrTestCaseJ4 { @BeforeClass public static void beforeClass() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(); solrTestRule.newCollection("core1").withConfigSet(ExternalPaths.DEFAULT_CONFIGSET).create(); solrTestRule.newCollection("core2").withConfigSet(ExternalPaths.DEFAULT_CONFIGSET).create(); diff --git a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java index ee83e772e68..a01a522f02c 100644 --- a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java +++ b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java @@ -17,9 +17,12 @@ package org.apache.solr.client.solrj.jetty; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.util.ArrayList; import java.util.List; import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -38,6 +41,8 @@ public class ConcurrentUpdateJettySolrClientBadInputTest extends SolrTestCaseJ4 @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java index 712762a1b08..82b3fd8e83a 100644 --- a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java +++ b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java @@ -17,12 +17,15 @@ package org.apache.solr.client.solrj.jetty; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.util.Properties; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.RemoteSolrException; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.request.SolrQuery; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.embedded.JettyConfig; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.LogLevel; @@ -57,6 +60,8 @@ public void testConnectToOldNodesUsingHttp1() throws Exception { .withServlet(new ServletHolder(DebugServlet.class), "/debug/*") .useOnlyHttp1(true) .build(); + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); @@ -81,6 +86,8 @@ public void testConnectToNewNodesUsingHttp1() throws Exception { .withServlet(new ServletHolder(DebugServlet.class), "/debug/*") .useOnlyHttp1(false) .build(); + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); @@ -108,6 +115,9 @@ public void testConnectToOldNodesUsingHttp2() throws Exception { .withServlet(new ServletHolder(DebugServlet.class), "/debug/*") .useOnlyHttp1(true) .build(); + + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); diff --git a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java index 15f720aa5ac..7b4f85ba7fe 100644 --- a/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java +++ b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java @@ -16,6 +16,8 @@ */ package org.apache.solr.client.solrj.jetty; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import com.carrotsearch.randomizedtesting.RandomizedTest; import java.util.Arrays; import java.util.Objects; @@ -26,6 +28,7 @@ import org.apache.solr.client.solrj.impl.HttpSolrClientBase; import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.common.SolrInputDocument; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SocketProxy; import org.apache.solr.util.SolrJettyTestRule; @@ -43,6 +46,10 @@ public class HttpJettySolrClientProxyTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { RandomizedTest.assumeFalse(sslConfig.isSSLMode()); + + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, + ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.enableProxy(); solrTestRule.startSolr(); // Actually only need extremely minimal configSet but just use the default diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java index a92d8fd2bd3..4b0a1f286be 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java @@ -17,6 +17,7 @@ package org.apache.solr.client.solrj; import static org.apache.solr.common.params.UpdateParams.ASSUME_CONTENT_TYPE; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.core.StringContains.containsString; @@ -76,6 +77,7 @@ import org.apache.solr.common.params.FacetParams; import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.util.ContentStreamBase; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.Pair; import org.apache.solr.util.ExternalPaths; @@ -99,6 +101,8 @@ public abstract class SolrExampleTests extends SolrExampleTestsBase { @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java b/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java index f5f5476fab2..d64b999560b 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java @@ -16,6 +16,8 @@ */ package org.apache.solr.client.solrj; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.io.IOException; import java.util.Iterator; import org.apache.solr.SolrTestCaseJ4; @@ -27,6 +29,7 @@ import org.apache.solr.client.solrj.request.XMLRequestWriter; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrInputDocument; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -45,6 +48,9 @@ public class TestBatchUpdate extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, + ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java b/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java index ada9b6032bd..023874d77dd 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java @@ -16,6 +16,8 @@ */ package org.apache.solr.client.solrj; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; @@ -42,6 +44,7 @@ import org.apache.solr.client.solrj.request.XMLRequestWriter; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrInputDocument; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -60,6 +63,9 @@ public class TestSolrJErrorHandling extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, + ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTestBase.java index fe1639eec51..3ccb0f39011 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTestBase.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTestBase.java @@ -17,6 +17,8 @@ package org.apache.solr.client.solrj.impl; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; @@ -44,6 +46,7 @@ import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.common.SolrInputDocument; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.ExecutorUtil; import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.solr.embedded.JettyConfig; @@ -192,6 +195,9 @@ public void run() { public static void beforeTest() throws Exception { JettyConfig jettyConfig = JettyConfig.builder().withServlet(new ServletHolder(TestServlet.class), "/cuss/*").build(); + + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java index 477da8eaf2e..c80338e412b 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientBadInputTest.java @@ -17,11 +17,14 @@ package org.apache.solr.client.solrj.impl; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.util.ArrayList; import java.util.List; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.apache.HttpSolrClient; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -39,6 +42,9 @@ public class HttpSolrClientBadInputTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, + ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java index fc8f4d2becb..130b75c2a74 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java @@ -17,6 +17,7 @@ package org.apache.solr.client.solrj.impl; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; import static org.hamcrest.CoreMatchers.instanceOf; import java.io.IOException; @@ -52,6 +53,7 @@ import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.MapSolrParams; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.IOUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.embedded.JettyConfig; @@ -91,6 +93,8 @@ public static void beforeTest() throws Exception { .withServlet(new ServletHolder(SlowStreamServlet.class), SLOW_STREAM_SERVLET_REGEX) .withSSLConfig(sslConfig.buildServerSSLConfig()) .build(); + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(createTempDir(), new Properties(), jettyConfig); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java index 80192f1cf36..e82dcb1ca9f 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java @@ -17,11 +17,14 @@ package org.apache.solr.client.solrj.impl; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.util.ArrayList; import java.util.List; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.apache.LBHttpSolrClient; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -38,6 +41,9 @@ public class LBHttpSolrClientBadInputTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, + ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); // Needed for configset location solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/response/InputStreamResponseParserTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/response/InputStreamResponseParserTest.java index 93cf722ebb8..984d19864d4 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/response/InputStreamResponseParserTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/response/InputStreamResponseParserTest.java @@ -16,6 +16,8 @@ */ package org.apache.solr.client.solrj.response; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -29,6 +31,7 @@ import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrInputDocument; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; @@ -48,6 +51,8 @@ private static InputStream getResponse() { @BeforeClass public static void beforeTest() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java b/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java index 945e6a12bd8..d159bcc5328 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java @@ -16,6 +16,8 @@ */ package org.apache.solr.client.solrj.response; +import static org.apache.solr.core.CoreContainer.ALLOW_PATHS_SYSPROP; + import java.io.IOException; import java.util.List; import java.util.Map; @@ -27,6 +29,7 @@ import org.apache.solr.client.solrj.request.SolrQuery; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.CommonParams; +import org.apache.solr.common.util.EnvUtils; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.BeforeClass; @@ -40,6 +43,8 @@ public class TestSuggesterResponse extends SolrTestCaseJ4 { @BeforeClass public static void beforeClass() throws Exception { + EnvUtils.setProperty( + ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toAbsolutePath().toString()); solrTestRule.startSolr(); solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); } diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java index b88af001dc7..a29e3d0da43 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java @@ -36,7 +36,6 @@ import org.apache.lucene.tests.util.VerifyTestClassNamingConvention; import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.ObjectReleaseTracker; -import org.apache.solr.core.CoreContainer; import org.apache.solr.servlet.SolrDispatchFilter; import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.LogLevelTestRule; @@ -149,28 +148,6 @@ public static void beforeSolrTestCase() { ExternalPaths.DEFAULT_CONFIGSET); } - final String allowPaths = EnvUtils.getProperty(CoreContainer.ALLOW_PATHS_SYSPROP); - if (null != allowPaths) { - log.info( - "Test env includes allow-paths system property '{}'='{}'", - CoreContainer.ALLOW_PATHS_SYSPROP, - allowPaths); - } else if (Files.isReadable(ExternalPaths.SERVER_HOME) - && Files.isDirectory(ExternalPaths.SERVER_HOME)) { - log.info( - "Setting '{}' system property to test-framework derived value of '{}'", - CoreContainer.ALLOW_PATHS_SYSPROP, - ExternalPaths.SERVER_HOME); - System.setProperty(CoreContainer.ALLOW_PATHS_SYSPROP, ExternalPaths.SERVER_HOME.toString()); - } else { - log.warn( - "System property '{}' is not already set, but test-framework derived value ('{}') either " - + "does not exist or is not a readable directory; tests may need to set the property " - + "explicitly when loading external configsets", - CoreContainer.ALLOW_PATHS_SYSPROP, - ExternalPaths.SERVER_HOME); - } - // set solr.install.dir needed by some test configs outside the test sandbox (!) if (ExternalPaths.SOURCE_HOME != null) { System.setProperty("solr.install.dir", ExternalPaths.SOURCE_HOME.toString()); diff --git a/solr/test-framework/src/test/org/apache/solr/TestFrameworkAllowPathsTest.java b/solr/test-framework/src/test/org/apache/solr/TestFrameworkAllowPathsTest.java deleted file mode 100644 index 89b877aa30d..00000000000 --- a/solr/test-framework/src/test/org/apache/solr/TestFrameworkAllowPathsTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.solr; - -import org.apache.solr.util.ExternalPaths; -import org.apache.solr.util.SolrJettyTestRule; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; - -public class TestFrameworkAllowPathsTest extends SolrTestCaseJ4 { - - @ClassRule public static final SolrJettyTestRule solrTestRule = new SolrJettyTestRule(); - - @BeforeClass - public static void beforeClass() throws Exception { - solrTestRule.startSolr(createTempDir()); - solrTestRule.newCollection().withConfigSet(ExternalPaths.TECHPRODUCTS_CONFIGSET).create(); - } - - @Test - public void testExternalConfigsetIsAllowedByDefault() { - var coreContainer = solrTestRule.getCoreContainer(); - coreContainer.assertPathAllowed(ExternalPaths.SERVER_HOME); - assertTrue(coreContainer.getAllowPaths().contains(ExternalPaths.SERVER_HOME.normalize())); - } -}