Author: solomax
Date: Mon Jul 11 08:43:52 2016
New Revision: 1752132

URL: http://svn.apache.org/viewvc?rev=1752132&view=rev
Log:
[OPENMEETINGS-1434] MSAD groups are being parsed as expected

Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1752132&r1=1752131&r2=1752132&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 Mon Jul 11 08:43:52 2016
@@ -38,6 +38,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.cursor.EntryCursor;
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.entry.Value;
 import 
org.apache.directory.api.ldap.model.exception.LdapAuthenticationException;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import 
org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
@@ -142,14 +143,19 @@ public class LdapLoginManagement {
                }
        }
        
-       private static String getAttr(Properties config, Entry entry, String 
aliasCode, String defaultAlias) throws LdapInvalidAttributeValueException {
+       private static Attribute getAttr(Properties config, Entry entry, String 
aliasCode, String defaultAlias) throws LdapInvalidAttributeValueException {
                String alias = config.getProperty(aliasCode, "");
                Attribute a = entry.get(Strings.isEmpty(alias) ? defaultAlias : 
alias);
+               return a == null ? null : a;
+       }
+
+       private static String getStringAttr(Properties config, Entry entry, 
String aliasCode, String defaultAlias) throws 
LdapInvalidAttributeValueException {
+               Attribute a = getAttr(config, entry, aliasCode, defaultAlias);
                return a == null ? null : a.getString();
        }
        
        private static String getLogin(Properties config, Entry entry) throws 
LdapInvalidAttributeValueException {
-               return getAttr(config, entry, CONFIGKEY_LDAP_KEY_LOGIN, 
LDAP_KEY_LOGIN);
+               return getStringAttr(config, entry, CONFIGKEY_LDAP_KEY_LOGIN, 
LDAP_KEY_LOGIN);
        }
        
        /**
@@ -342,22 +348,22 @@ public class LdapLoginManagement {
                                u.setShowContactDataToContacts(true);
                                u.setAddress(new Address());
                        }
-                       u.setLastname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_LASTNAME, LDAP_KEY_LASTNAME));
-                       u.setFirstname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FIRSTNAME, LDAP_KEY_FIRSTNAME));
-                       u.getAddress().setEmail(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_MAIL, LDAP_KEY_MAIL));
-                       u.getAddress().setStreet(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_STREET, LDAP_KEY_STREET));
-                       u.getAddress().setAdditionalname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME, LDAP_KEY_ADDITIONAL_NAME));
-                       u.getAddress().setFax(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FAX, LDAP_KEY_FAX));
-                       u.getAddress().setZip(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ZIP, LDAP_KEY_ZIP));
-                       u.getAddress().setCountry(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY));
-                       u.getAddress().setTown(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_TOWN, LDAP_KEY_TOWN));
-                       u.getAddress().setPhone(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PHONE, LDAP_KEY_PHONE));
-                       String tz = getAttr(config, entry, 
LdapOptions.CONFIGKEY_LDAP_TIMEZONE_NAME, LDAP_KEY_TIMEZONE);
+                       u.setLastname(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_LASTNAME, LDAP_KEY_LASTNAME));
+                       u.setFirstname(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FIRSTNAME, LDAP_KEY_FIRSTNAME));
+                       u.getAddress().setEmail(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_MAIL, LDAP_KEY_MAIL));
+                       u.getAddress().setStreet(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_STREET, LDAP_KEY_STREET));
+                       u.getAddress().setAdditionalname(getStringAttr(config, 
entry, CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME, LDAP_KEY_ADDITIONAL_NAME));
+                       u.getAddress().setFax(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FAX, LDAP_KEY_FAX));
+                       u.getAddress().setZip(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ZIP, LDAP_KEY_ZIP));
+                       u.getAddress().setCountry(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY));
+                       u.getAddress().setTown(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_TOWN, LDAP_KEY_TOWN));
+                       u.getAddress().setPhone(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PHONE, LDAP_KEY_PHONE));
+                       String tz = getStringAttr(config, entry, 
LdapOptions.CONFIGKEY_LDAP_TIMEZONE_NAME, LDAP_KEY_TIMEZONE);
                        if (tz == null) {
                                tz = options.tz;
                        }
                        u.setTimeZoneId(timezoneUtil.getTimeZone(tz).getID());
-                       String picture = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PICTURE_URI, LDAP_KEY_PICTURE_URI);
+                       String picture = getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PICTURE_URI, LDAP_KEY_PICTURE_URI);
                        if (picture == null) {
                                picture = options.pictureUri;
                        }
@@ -365,10 +371,10 @@ public class LdapLoginManagement {
                        
                        List<Dn> groups = new ArrayList<>();
                        if (GroupMode.ATTRIBUTE == options.groupMode) {
-                               String attr = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_GROUP, LDAP_KEY_GROUP);
-                               if (!Strings.isEmpty(attr)) {
-                                       for (String g : attr.split("\\|")) {
-                                               groups.add(new Dn(g));
+                               Attribute attr = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_GROUP, LDAP_KEY_GROUP);
+                               if (attr != null) {
+                                       for (Value<?> v : attr) {
+                                               groups.add(new 
Dn(v.getString()));
                                        }
                                }
                        } else if (GroupMode.QUERY == options.groupMode) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1752132&r1=1752131&r2=1752132&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 Mon Jul 11 08:43:52 2016
@@ -38,6 +38,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.cursor.EntryCursor;
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.entry.Value;
 import 
org.apache.directory.api.ldap.model.exception.LdapAuthenticationException;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import 
org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
@@ -142,14 +143,19 @@ public class LdapLoginManagement {
                }
        }
        
-       private static String getAttr(Properties config, Entry entry, String 
aliasCode, String defaultAlias) throws LdapInvalidAttributeValueException {
+       private static Attribute getAttr(Properties config, Entry entry, String 
aliasCode, String defaultAlias) throws LdapInvalidAttributeValueException {
                String alias = config.getProperty(aliasCode, "");
                Attribute a = entry.get(Strings.isEmpty(alias) ? defaultAlias : 
alias);
+               return a == null ? null : a;
+       }
+
+       private static String getStringAttr(Properties config, Entry entry, 
String aliasCode, String defaultAlias) throws 
LdapInvalidAttributeValueException {
+               Attribute a = getAttr(config, entry, aliasCode, defaultAlias);
                return a == null ? null : a.getString();
        }
        
        private static String getLogin(Properties config, Entry entry) throws 
LdapInvalidAttributeValueException {
-               return getAttr(config, entry, CONFIGKEY_LDAP_KEY_LOGIN, 
LDAP_KEY_LOGIN);
+               return getStringAttr(config, entry, CONFIGKEY_LDAP_KEY_LOGIN, 
LDAP_KEY_LOGIN);
        }
        
        /**
@@ -342,22 +348,22 @@ public class LdapLoginManagement {
                                u.setShowContactDataToContacts(true);
                                u.setAddress(new Address());
                        }
-                       u.setLastname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_LASTNAME, LDAP_KEY_LASTNAME));
-                       u.setFirstname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FIRSTNAME, LDAP_KEY_FIRSTNAME));
-                       u.getAddress().setEmail(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_MAIL, LDAP_KEY_MAIL));
-                       u.getAddress().setStreet(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_STREET, LDAP_KEY_STREET));
-                       u.getAddress().setAdditionalname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME, LDAP_KEY_ADDITIONAL_NAME));
-                       u.getAddress().setFax(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FAX, LDAP_KEY_FAX));
-                       u.getAddress().setZip(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ZIP, LDAP_KEY_ZIP));
-                       u.getAddress().setCountry(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY));
-                       u.getAddress().setTown(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_TOWN, LDAP_KEY_TOWN));
-                       u.getAddress().setPhone(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PHONE, LDAP_KEY_PHONE));
-                       String tz = getAttr(config, entry, 
LdapOptions.CONFIGKEY_LDAP_TIMEZONE_NAME, LDAP_KEY_TIMEZONE);
+                       u.setLastname(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_LASTNAME, LDAP_KEY_LASTNAME));
+                       u.setFirstname(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FIRSTNAME, LDAP_KEY_FIRSTNAME));
+                       u.getAddress().setEmail(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_MAIL, LDAP_KEY_MAIL));
+                       u.getAddress().setStreet(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_STREET, LDAP_KEY_STREET));
+                       u.getAddress().setAdditionalname(getStringAttr(config, 
entry, CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME, LDAP_KEY_ADDITIONAL_NAME));
+                       u.getAddress().setFax(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FAX, LDAP_KEY_FAX));
+                       u.getAddress().setZip(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ZIP, LDAP_KEY_ZIP));
+                       u.getAddress().setCountry(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY));
+                       u.getAddress().setTown(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_TOWN, LDAP_KEY_TOWN));
+                       u.getAddress().setPhone(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PHONE, LDAP_KEY_PHONE));
+                       String tz = getStringAttr(config, entry, 
LdapOptions.CONFIGKEY_LDAP_TIMEZONE_NAME, LDAP_KEY_TIMEZONE);
                        if (tz == null) {
                                tz = options.tz;
                        }
                        u.setTimeZoneId(timezoneUtil.getTimeZone(tz).getID());
-                       String picture = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PICTURE_URI, LDAP_KEY_PICTURE_URI);
+                       String picture = getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PICTURE_URI, LDAP_KEY_PICTURE_URI);
                        if (picture == null) {
                                picture = options.pictureUri;
                        }
@@ -365,10 +371,10 @@ public class LdapLoginManagement {
                        
                        List<Dn> groups = new ArrayList<>();
                        if (GroupMode.ATTRIBUTE == options.groupMode) {
-                               String attr = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_GROUP, LDAP_KEY_GROUP);
-                               if (!Strings.isEmpty(attr)) {
-                                       for (String g : attr.split("\\|")) {
-                                               groups.add(new Dn(g));
+                               Attribute attr = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_GROUP, LDAP_KEY_GROUP);
+                               if (attr != null) {
+                                       for (Value<?> v : attr) {
+                                               groups.add(new 
Dn(v.getString()));
                                        }
                                }
                        } else if (GroupMode.QUERY == options.groupMode) {

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1752132&r1=1752131&r2=1752132&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 Mon Jul 11 08:43:52 2016
@@ -38,6 +38,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.cursor.EntryCursor;
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.entry.Value;
 import 
org.apache.directory.api.ldap.model.exception.LdapAuthenticationException;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import 
org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
@@ -142,14 +143,19 @@ public class LdapLoginManagement {
                }
        }
        
-       private static String getAttr(Properties config, Entry entry, String 
aliasCode, String defaultAlias) throws LdapInvalidAttributeValueException {
+       private static Attribute getAttr(Properties config, Entry entry, String 
aliasCode, String defaultAlias) throws LdapInvalidAttributeValueException {
                String alias = config.getProperty(aliasCode, "");
                Attribute a = entry.get(Strings.isEmpty(alias) ? defaultAlias : 
alias);
+               return a == null ? null : a;
+       }
+
+       private static String getStringAttr(Properties config, Entry entry, 
String aliasCode, String defaultAlias) throws 
LdapInvalidAttributeValueException {
+               Attribute a = getAttr(config, entry, aliasCode, defaultAlias);
                return a == null ? null : a.getString();
        }
        
        private static String getLogin(Properties config, Entry entry) throws 
LdapInvalidAttributeValueException {
-               return getAttr(config, entry, CONFIGKEY_LDAP_KEY_LOGIN, 
LDAP_KEY_LOGIN);
+               return getStringAttr(config, entry, CONFIGKEY_LDAP_KEY_LOGIN, 
LDAP_KEY_LOGIN);
        }
        
        /**
@@ -342,22 +348,22 @@ public class LdapLoginManagement {
                                u.setShowContactDataToContacts(true);
                                u.setAddress(new Address());
                        }
-                       u.setLastname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_LASTNAME, LDAP_KEY_LASTNAME));
-                       u.setFirstname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FIRSTNAME, LDAP_KEY_FIRSTNAME));
-                       u.getAddress().setEmail(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_MAIL, LDAP_KEY_MAIL));
-                       u.getAddress().setStreet(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_STREET, LDAP_KEY_STREET));
-                       u.getAddress().setAdditionalname(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME, LDAP_KEY_ADDITIONAL_NAME));
-                       u.getAddress().setFax(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FAX, LDAP_KEY_FAX));
-                       u.getAddress().setZip(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ZIP, LDAP_KEY_ZIP));
-                       u.getAddress().setCountry(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY));
-                       u.getAddress().setTown(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_TOWN, LDAP_KEY_TOWN));
-                       u.getAddress().setPhone(getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PHONE, LDAP_KEY_PHONE));
-                       String tz = getAttr(config, entry, 
LdapOptions.CONFIGKEY_LDAP_TIMEZONE_NAME, LDAP_KEY_TIMEZONE);
+                       u.setLastname(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_LASTNAME, LDAP_KEY_LASTNAME));
+                       u.setFirstname(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FIRSTNAME, LDAP_KEY_FIRSTNAME));
+                       u.getAddress().setEmail(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_MAIL, LDAP_KEY_MAIL));
+                       u.getAddress().setStreet(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_STREET, LDAP_KEY_STREET));
+                       u.getAddress().setAdditionalname(getStringAttr(config, 
entry, CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME, LDAP_KEY_ADDITIONAL_NAME));
+                       u.getAddress().setFax(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_FAX, LDAP_KEY_FAX));
+                       u.getAddress().setZip(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_ZIP, LDAP_KEY_ZIP));
+                       u.getAddress().setCountry(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY));
+                       u.getAddress().setTown(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_TOWN, LDAP_KEY_TOWN));
+                       u.getAddress().setPhone(getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PHONE, LDAP_KEY_PHONE));
+                       String tz = getStringAttr(config, entry, 
LdapOptions.CONFIGKEY_LDAP_TIMEZONE_NAME, LDAP_KEY_TIMEZONE);
                        if (tz == null) {
                                tz = options.tz;
                        }
                        u.setTimeZoneId(timezoneUtil.getTimeZone(tz).getID());
-                       String picture = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PICTURE_URI, LDAP_KEY_PICTURE_URI);
+                       String picture = getStringAttr(config, entry, 
CONFIGKEY_LDAP_KEY_PICTURE_URI, LDAP_KEY_PICTURE_URI);
                        if (picture == null) {
                                picture = options.pictureUri;
                        }
@@ -365,10 +371,10 @@ public class LdapLoginManagement {
                        
                        List<Dn> groups = new ArrayList<>();
                        if (GroupMode.ATTRIBUTE == options.groupMode) {
-                               String attr = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_GROUP, LDAP_KEY_GROUP);
-                               if (!Strings.isEmpty(attr)) {
-                                       for (String g : attr.split("\\|")) {
-                                               groups.add(new Dn(g));
+                               Attribute attr = getAttr(config, entry, 
CONFIGKEY_LDAP_KEY_GROUP, LDAP_KEY_GROUP);
+                               if (attr != null) {
+                                       for (Value<?> v : attr) {
+                                               groups.add(new 
Dn(v.getString()));
                                        }
                                }
                        } else if (GroupMode.QUERY == options.groupMode) {


Reply via email to