You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2018/06/18 19:03:07 UTC

activemq-artemis git commit: ARTEMIS-1942 replace properties removed in error from internal config map

Repository: activemq-artemis
Updated Branches:
  refs/heads/2.6.x 1ab8fda4b -> 97960018f


ARTEMIS-1942 replace properties removed in error from internal config map

(cherry picked from commit f10c64fc87fbbaa15f1f5e801326845f3e96daa2)


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/97960018
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/97960018
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/97960018

Branch: refs/heads/2.6.x
Commit: 97960018fe15481ad067415d1e56ed29a8f892da
Parents: 1ab8fda
Author: gtully <ga...@gmail.com>
Authored: Fri Jun 15 19:55:31 2018 +0100
Committer: Clebert Suconic <cl...@apache.org>
Committed: Mon Jun 18 15:03:00 2018 -0400

----------------------------------------------------------------------
 .../spi/core/security/jaas/LDAPLoginModule.java |  6 ++--
 .../core/security/jaas/LDAPLoginModuleTest.java | 37 ++++++++++++++++++++
 2 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/97960018/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/LDAPLoginModule.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/LDAPLoginModule.java b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/LDAPLoginModule.java
index 99648c2..cc3c824 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/LDAPLoginModule.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/LDAPLoginModule.java
@@ -84,7 +84,6 @@ public class LDAPLoginModule implements LoginModule {
    private static final String SASL_LOGIN_CONFIG_SCOPE = "saslLoginConfigScope";
    private static final String AUTHENTICATE_USER = "authenticateUser";
    private static final String REFERRAL = "referral";
-   private static final String MASK_PASSWORD = "maskPassword";
    private static final String PASSWORD_CODEC = "passwordCodec";
 
    protected DirContext context;
@@ -126,6 +125,9 @@ public class LDAPLoginModule implements LoginModule {
                                        new LDAPLoginProperty(USER_ROLE_NAME, (String) options.get(USER_ROLE_NAME)),
                                        new LDAPLoginProperty(EXPAND_ROLES, (String) options.get(EXPAND_ROLES)),
                                        new LDAPLoginProperty(EXPAND_ROLES_MATCHING, (String) options.get(EXPAND_ROLES_MATCHING)),
+                                       new LDAPLoginProperty(PASSWORD_CODEC, (String) options.get(PASSWORD_CODEC)),
+                                       new LDAPLoginProperty(SASL_LOGIN_CONFIG_SCOPE, (String) options.get(SASL_LOGIN_CONFIG_SCOPE)),
+                                       new LDAPLoginProperty(AUTHENTICATE_USER, (String) options.get(AUTHENTICATE_USER)),
                                        new LDAPLoginProperty(REFERRAL, (String) options.get(REFERRAL))};
 
       if (isLoginPropertySet(AUTHENTICATE_USER)) {
@@ -133,7 +135,7 @@ public class LDAPLoginModule implements LoginModule {
       }
       isRoleAttributeSet = isLoginPropertySet(ROLE_NAME);
       roleAttributeName = getLDAPPropertyValue(ROLE_NAME);
-      codecClass = (String) options.get(PASSWORD_CODEC);
+      codecClass = getLDAPPropertyValue(PASSWORD_CODEC);
    }
 
    private String getPlainPassword(String password) {

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/97960018/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/LDAPLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/LDAPLoginModuleTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/LDAPLoginModuleTest.java
index 75316e6..4fbd2c8 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/LDAPLoginModuleTest.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/LDAPLoginModuleTest.java
@@ -31,12 +31,15 @@ import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
 import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
 
 import org.apache.activemq.artemis.spi.core.security.jaas.JaasCallbackHandler;
 import org.apache.activemq.artemis.spi.core.security.jaas.LDAPLoginModule;
+import org.apache.activemq.artemis.spi.core.security.jaas.LDAPLoginProperty;
 import org.apache.directory.server.annotations.CreateLdapServer;
 import org.apache.directory.server.annotations.CreateTransport;
 import org.apache.directory.server.core.annotations.ApplyLdifFiles;
@@ -162,4 +165,38 @@ public class LDAPLoginModuleTest extends AbstractLdapTestUnit {
       // since login failed commit should return false as well
       assertFalse(loginModule.commit());
    }
+
+   @Test
+   public void testPropertyConfigMap() throws Exception {
+      LDAPLoginModule loginModule = new LDAPLoginModule();
+      JaasCallbackHandler callbackHandler = new JaasCallbackHandler(null, null, null);
+
+      Field configMap = null;
+      HashMap<String, Object> options = new HashMap<>();
+      for (Field field: loginModule.getClass().getDeclaredFields()) {
+         if (Modifier.isStatic(field.getModifiers()) && Modifier.isFinal(field.getModifiers()) && field.getType().isAssignableFrom(String.class)) {
+            field.setAccessible(true);
+            options.put((String)field.get(loginModule), "SET");
+         }
+         if (field.getName().equals("config")) {
+            field.setAccessible(true);
+            configMap = field;
+         }
+      }
+      loginModule.initialize(new Subject(), callbackHandler, null, options);
+
+      LDAPLoginProperty[] ldapProps = (LDAPLoginProperty[]) configMap.get(loginModule);
+      for (String key: options.keySet()) {
+         assertTrue("val set: " + key, presentInArray(ldapProps, key));
+      }
+   }
+
+   private boolean presentInArray(LDAPLoginProperty[] ldapProps, String propertyName) {
+      for (LDAPLoginProperty conf : ldapProps) {
+         if (conf.getPropertyName().equals(propertyName) && (conf.getPropertyValue() != null && !"".equals(conf.getPropertyValue())))
+            return true;
+      }
+      return false;
+   }
+
 }