Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into SOLR-17577
Browse files Browse the repository at this point in the history
  • Loading branch information
epugh committed Dec 2, 2024
2 parents b7432f8 + cebdb2d commit 06f6e0c
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 12 deletions.
2 changes: 2 additions & 0 deletions solr/CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,8 @@ Bug Fixes
* SOLR-16976: Remove log4j-jul jar and use slf4j bridge for JUL to prevent exception from being logged when remote JMX
is enabled (Shawn Heisey, Stephen Zhou, Eric Pugh, Christine Poerschke, David Smiley)

* SOLR-17575: Fixed broken backwards compatibility with the legacy "langid.whitelist" config in Solr Langid. (Jan Høydahl, Alexander Zagniotov)

Dependency Upgrades
---------------------
(No changes)
Expand Down
6 changes: 2 additions & 4 deletions solr/bin/solr.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -1174,11 +1174,9 @@ for %%a in (%*) do (
if "!arg:~0,1!" equ "-" set "option=!arg!"
) else (
set "option!option!=%%a"
if "!option!" equ "-s" set "SOLR_HOME=%%a"
if "!option!" equ "--solr-home" set "SOLR_HOME=%%a"
if "!option!" equ "-d" set "SOLR_SERVER_DIR=%%a"
if "!option!" equ "--server-dir" set "SOLR_SERVER_DIR=%%a"
if not "!option!" equ "-s" if not "!option!" equ "--solr-home" if not "!option!" equ "-d" if not "!option!" equ "--server-dir" (
if "!option!" equ "--server-dir" set "SOLR_SERVER_DIR=%%a"
if not "!option!" equ "--solr-home" if not "!option!" equ "--server-dir" (
set "AUTH_PARAMS=!AUTH_PARAMS! !option! %%a"
)
set "option="
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,20 +111,19 @@ private void initParams(SolrParams params) {
overwrite = params.getBool(OVERWRITE, false);
langAllowlist = new HashSet<>();
threshold = params.getDouble(THRESHOLD, DOCID_THRESHOLD_DEFAULT);
String legacyAllowList = params.get(LANG_WHITELIST, "");
if (legacyAllowList.length() > 0) {
final String legacyAllowList = params.get(LANG_WHITELIST, "").trim();
if (!legacyAllowList.isEmpty()) {
// nowarn compile time string concatenation
log.warn(
LANG_WHITELIST
+ " parameter is deprecated; use "
+ LANG_ALLOWLIST
+ " instead."); // nowarn
}
if (params.get(LANG_ALLOWLIST, legacyAllowList).length() > 0) {
for (String lang : params.get(LANG_ALLOWLIST, "").split(",")) {
langAllowlist.add(lang);
}
}
Arrays.stream(params.get(LANG_ALLOWLIST, legacyAllowList).split(","))
.map(String::trim)
.filter(lang -> !lang.isEmpty())
.forEach(langAllowlist::add);

// Mapping params (field centric)
enableMapping = params.getBool(MAP_ENABLE, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.ModifiableSolrParams;
Expand Down Expand Up @@ -464,6 +465,31 @@ public void testMapIndividual() throws Exception {
assertTrue(mappedIndividual.containsKey("text2_ru"));
}

@Test
public void testAllowlist() throws Exception {
ModifiableSolrParams parameters = new ModifiableSolrParams();
parameters.add("langid.fl", "name,subject");
parameters.add("langid.langField", "language_s");
parameters.add("langid.allowlist", "no,en ,, ,sv, sv");
liProcessor = createLangIdProcessor(parameters);

// Make sure that empty language codes have been filtered out and others trimmed.
assertEquals(Set.of("no", "en", "sv"), liProcessor.langAllowlist);
}

@Test
public void testAllowlistBackwardsCompatabilityWithLegacyAllowlist() throws Exception {
// The "legacy allowlist" is "langid.whitelist"
ModifiableSolrParams parameters = new ModifiableSolrParams();
parameters.add("langid.fl", "name,subject");
parameters.add("langid.langField", "language_s");
parameters.add("langid.whitelist", "no,en ,, ,sv, sv");
liProcessor = createLangIdProcessor(parameters);

// Make sure that empty language codes have been filtered out and others trimmed.
assertEquals(Set.of("no", "en", "sv"), liProcessor.langAllowlist);
}

// Various utility methods

private SolrInputDocument englishDoc() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ Let's comment on this config:
<1> Plugin class
<2> Make sure to block anyone without a valid token (this is also the default)
<3> Fetch the user id from another claim than the default `sub`
<4> Require that the `roles` claim is one of "A" or "B" and that the `dept` claim is "IT"
<4> Require that the `foo` claim is one of "A" or "B" and that the `dept` claim is "IT"
<5> Require one of the scopes `solr:read`, `solr:write` or `solr:admin`
<6> Only accept RSA algorithms for signatures
<7> Array of issuer configurations
Expand Down

0 comments on commit 06f6e0c

Please sign in to comment.