VishnuPriyaChandraSekar commented on code in PR #4996:
URL: https://github.com/apache/solr/pull/4996#discussion_r4161112256
##########
solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java:
##########
@@ -255,19 +257,47 @@ public void doTestHandlerPathUnchanged() {
@Test
public void testUrlAllowList() throws Exception {
- // Run another test with URL allow-list enabled and allow-list is empty.
- // Expect an exception because the leader URL is not allowed.
+ // Allow-list denial during doTestDetails() is not reliably a
SolrException (SOLR-18280).
System.setProperty(AllowListUrlChecker.ENABLE_URL_ALLOW_LIST, "true");
- SolrException e = expectThrows(SolrException.class, this::doTestDetails);
- assertTrue(
- e.getMessage()
- .contains("nor in the configured '" +
AllowListUrlChecker.URL_ALLOW_LIST + "'"));
-
- // Set the allow-list to allow the leader URL.
- // Expect the same test to pass now.
- System.setProperty(
- TEST_URL_ALLOW_LIST, leaderJetty.getBaseUrl() + "," +
followerJetty.getBaseUrl());
- doTestDetails();
+ try {
+ leaderJetty.stop();
+ leaderJetty = createAndStartJetty(leader);
+ leaderClient.close();
+ leaderClient =
+ ReplicationTestHelper.createNewSolrClient(
+ buildUrl(leaderJetty.getLocalPort()), DEFAULT_TEST_CORENAME);
+
+ AllowListUrlChecker checker =
leaderJetty.getCoreContainer().getAllowListUrlChecker();
+ assertTrue(checker.isEnabled());
+ SolrException denied =
+ expectThrows(
+ SolrException.class,
+ () ->
checker.checkAllowList(List.of("http://127.0.0.1:7574/solr/collection1")));
+ assertThat(denied.getMessage(),
containsString(AllowListUrlChecker.URL_ALLOW_LIST));
+
+ System.setProperty(TEST_URL_ALLOW_LIST,
buildUrl(leaderJetty.getLocalPort()));
+ follower.setTestPort(leaderJetty.getLocalPort());
+ follower.copyConfigFile(CONF_DIR + "solrconfig-follower.xml",
"solrconfig.xml");
+ followerJetty.stop();
+ followerJetty = createAndStartJetty(follower);
+ followerClient.close();
+ followerClient =
+ ReplicationTestHelper.createNewSolrClient(
+ buildUrl(followerJetty.getLocalPort()), DEFAULT_TEST_CORENAME);
+
+ followerJetty
+ .getCoreContainer()
+ .getAllowListUrlChecker()
+ .checkAllowList(List.of(buildUrl(leaderJetty.getLocalPort())));
+
+ index(leaderClient, "id", "allow-list-1", "name", "allowed");
+ leaderClient.commit();
+ pullFromTo(leaderJetty, followerJetty);
+ rQuery(1, "id:allow-list-1", followerClient);
+ } finally {
+ System.clearProperty(TEST_URL_ALLOW_LIST);
Review Comment:
Since tearDown() runs after each test, it makes sense to remove the
System.clearProperty in the finally block (we don't want to repeat things)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]