You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/07/14 03:21:11 UTC

[lucene-solr] branch reference_impl updated: #134 - Fix up JWTVerificaitonResolver.

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/reference_impl by this push:
     new bfdab56  #134 - Fix up JWTVerificaitonResolver.
bfdab56 is described below

commit bfdab56e07918c3d2d48518a2adc055639aff87b
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Jul 13 22:20:53 2020 -0500

    #134 - Fix up JWTVerificaitonResolver.
---
 solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java     | 2 +-
 .../java/org/apache/solr/security/JWTVerificationkeyResolver.java  | 7 +++----
 solr/core/src/test/org/apache/solr/security/JWTAuthPluginTest.java | 1 +
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java b/solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java
index fb7b9db..2a6f67b 100644
--- a/solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java
@@ -163,7 +163,7 @@ public class JWTAuthPlugin extends AuthenticationPlugin implements SpecProvider,
     long jwkCacheDuration = Long.parseLong((String) pluginConfig.getOrDefault(PARAM_JWK_CACHE_DURATION, "3600"));
     JWTIssuerConfig.setHttpsJwksFactory(new JWTIssuerConfig.HttpsJwksFactory(jwkCacheDuration, DEFAULT_REFRESH_REPRIEVE_THRESHOLD));
 
-    issuerConfigs = new ArrayList<>();
+    issuerConfigs = Collections.synchronizedList(new ArrayList<>());
 
     // Try to parse an issuer from top level config, and add first (primary issuer)
     Optional<JWTIssuerConfig> topLevelIssuer = parseIssuerFromTopLevelConfig(pluginConfig);
diff --git a/solr/core/src/java/org/apache/solr/security/JWTVerificationkeyResolver.java b/solr/core/src/java/org/apache/solr/security/JWTVerificationkeyResolver.java
index 1c7f6dd..dbebe37 100644
--- a/solr/core/src/java/org/apache/solr/security/JWTVerificationkeyResolver.java
+++ b/solr/core/src/java/org/apache/solr/security/JWTVerificationkeyResolver.java
@@ -21,6 +21,7 @@ import java.lang.invoke.MethodHandles;
 import java.security.Key;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -59,7 +60,7 @@ public class JWTVerificationkeyResolver implements VerificationKeyResolver {
 
   private final VerificationJwkSelector verificationJwkSelector = new VerificationJwkSelector();
 
-  private Map<String, JWTIssuerConfig> issuerConfigs = new ConcurrentHashMap<>();
+  private Map<String, JWTIssuerConfig> issuerConfigs = Collections.synchronizedMap(new HashMap<>());
   private final boolean requireIssuer;
 
   /**
@@ -70,9 +71,7 @@ public class JWTVerificationkeyResolver implements VerificationKeyResolver {
   public JWTVerificationkeyResolver(Collection<JWTIssuerConfig> issuerConfigs, boolean requireIssuer) {
     this.requireIssuer = requireIssuer;
     issuerConfigs.forEach(ic -> {
-      if (ic.getIss() != null && ic != null) {
-        this.issuerConfigs.put(ic.getIss(), ic);
-      }
+      this.issuerConfigs.put(ic.getIss(), ic);
     });
   }
 
diff --git a/solr/core/src/test/org/apache/solr/security/JWTAuthPluginTest.java b/solr/core/src/test/org/apache/solr/security/JWTAuthPluginTest.java
index 7b04c95..58d5488 100644
--- a/solr/core/src/test/org/apache/solr/security/JWTAuthPluginTest.java
+++ b/solr/core/src/test/org/apache/solr/security/JWTAuthPluginTest.java
@@ -80,6 +80,7 @@ public class JWTAuthPluginTest extends SolrTestCaseJ4 {
 
   @BeforeClass
   public static void beforeAll() throws Exception {
+    System.setProperty("solr.disablePublicKeyHandler", "false");
     JwtClaims claims = generateClaims();
     JsonWebSignature jws = new JsonWebSignature();
     jws.setPayload(claims.toJson());