You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by co...@apache.org on 2023/11/29 10:35:18 UTC

(directory-kerby) 01/01: DIRKRB-767 - Some minor thread safety changes to PkinitPreauth

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

coheigea pushed a commit to branch coheigea/DIRKRB-767
in repository https://gitbox.apache.org/repos/asf/directory-kerby.git

commit e26312384dedccd948a1ca0936a50dda0e561d8f
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Wed Nov 29 10:34:48 2023 +0000

    DIRKRB-767 - Some minor thread safety changes to PkinitPreauth
---
 .../kerb/server/preauth/pkinit/PkinitPreauth.java  | 26 +++++++++-------------
 1 file changed, 11 insertions(+), 15 deletions(-)

diff --git a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/preauth/pkinit/PkinitPreauth.java b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/preauth/pkinit/PkinitPreauth.java
index aaf303c7..824787fc 100644
--- a/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/preauth/pkinit/PkinitPreauth.java
+++ b/kerby-kerb/kerb-server/src/main/java/org/apache/kerby/kerberos/kerb/server/preauth/pkinit/PkinitPreauth.java
@@ -68,11 +68,8 @@ import java.io.IOException;
 import java.math.BigInteger;
 import java.nio.ByteBuffer;
 import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 
 public class PkinitPreauth extends AbstractPreauthPlugin {
 
@@ -82,20 +79,22 @@ public class PkinitPreauth extends AbstractPreauthPlugin {
     public PkinitPreauth() {
         super(new PkinitPreauthMeta());
 
-        pkinitContexts = new HashMap<>(1);
+        pkinitContexts = new ConcurrentHashMap<>(1);
     }
 
     @Override
     public void initWith(KdcContext kdcContext) {
         super.initWith(kdcContext);
 
-        PkinitKdcContext tmp = new PkinitKdcContext();
-        tmp.realm = kdcContext.getKdcRealm();
-
         String pkinitIdentity = kdcContext.getConfig().getPkinitIdentity();
-        tmp.identityOpts.setIdentity(pkinitIdentity);
+        if (pkinitIdentity != null) {
+            PkinitKdcContext tmp = new PkinitKdcContext();
+            tmp.realm = kdcContext.getKdcRealm();
+
+            tmp.identityOpts.setIdentity(pkinitIdentity);
 
-        pkinitContexts.put(kdcContext.getKdcRealm(), tmp);
+            pkinitContexts.put(kdcContext.getKdcRealm(), tmp);
+        }
     }
 
     @Override
@@ -269,10 +268,7 @@ public class PkinitPreauth extends AbstractPreauthPlugin {
 
     private PkinitKdcContext findContext(PrincipalName principal) {
         String realm = principal.getRealm();
-        if (pkinitContexts.containsKey(realm)) {
-            return pkinitContexts.get(realm);
-        }
-        return null;
+        return pkinitContexts.get(realm);
     }
 
     /**