Openmeetings
  1. Openmeetings
  2. OPENMEETINGS-144

When using openLDAP authentication, the source code uses the hardcoded 'uid' attribute to map logins and user DNs instead of the field_user_principal parameter

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0.0 Apache Incubator Release
    • Component/s: None
    • Labels:
    • Environment:
      ldap authentication

      Description

      When using openLdap authentication, the LdapLoginManagent.java class first do a search in the directory to find the user given its login. the filter is using the attribute name given in configuration filed_user_principal and the user login provided to openmeetings as value. ( doLdapLogin:358).

      The search is done in LdapAuthBase.java, in method getUidCnHashMap (line 229). Then the results are mapped in a HashMap with the user login as key.
      This user login is assumed to be in the 'uid' attribute of the ldap entries retrieved by the query. This is hardcoded in line 234. Though 'uid' is the usual way to store the user login when since openldap, it may not be always the case. There are openldap directories where the uid contains a numerical id (so that it will never be reused over time), and users have a 'login alias' they can choose to ease login to applications.
      This means that we should in fact use the attribute defined in field_user_principal parameter to retrieve the user login.

      Also note that using a search and bind (used by openldap), may be very useful in some AD installations, so making this feature a little more generic could help AD users as well.

      What do you think ?

      1. UidCnHash.diff
        2 kB
        Thibault Le Meur

        Activity

        Thibault Le Meur created issue -
        Hide
        SebastianWagner added a comment -

        Sounds good. I would prefer if the default settings for a making this configurable is smae as it has been in the past. So that we are backwards compatible.
        But it would be good if changing the hardcoded UID to some other string is possible via the configuration file.

        We are happy to receive patches for the same )

        Thanks!
        Sebastian

        Show
        SebastianWagner added a comment - Sounds good. I would prefer if the default settings for a making this configurable is smae as it has been in the past. So that we are backwards compatible. But it would be good if changing the hardcoded UID to some other string is possible via the configuration file. We are happy to receive patches for the same ) Thanks! Sebastian
        Hide
        Thibault Le Meur added a comment -

        I think this will be backward compatible since in the past only 'openldap' directories using the 'uid' attribute to store the user login were working. this means that they were working by setting field_user_principal to 'uid'. Thus even if we use the field_user_principal attribute name instead of the hardcoded 'uid', this will work with previous ldap configurations "that were working in the past".

        I will provide a patch if you want me to.

        Show
        Thibault Le Meur added a comment - I think this will be backward compatible since in the past only 'openldap' directories using the 'uid' attribute to store the user login were working. this means that they were working by setting field_user_principal to 'uid'. Thus even if we use the field_user_principal attribute name instead of the hardcoded 'uid', this will work with previous ldap configurations "that were working in the past". I will provide a patch if you want me to.
        Hide
        Thibault Le Meur added a comment -

        This fixes the hardcoded 'uid' attribute used to map the loginname to the user DN.
        It now uses the field_user_principal parameter from the ldap configuration file.

        Show
        Thibault Le Meur added a comment - This fixes the hardcoded 'uid' attribute used to map the loginname to the user DN. It now uses the field_user_principal parameter from the ldap configuration file.
        Thibault Le Meur made changes -
        Field Original Value New Value
        Attachment UidCnHash.diff [ 12521919 ]
        Hide
        SebastianWagner added a comment -

        Fix is committed. Thanks for the patch!

        Could you please verify results together with us with one of the next Nightly Builds?
        Thanks!
        Sebastian

        Show
        SebastianWagner added a comment - Fix is committed. Thanks for the patch! Could you please verify results together with us with one of the next Nightly Builds? Thanks! Sebastian
        SebastianWagner made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 2.0 Apache Incubator Release [ 12319197 ]
        Resolution Fixed [ 1 ]
        Hide
        Thibault Le Meur added a comment -

        Tested on a private build yesterday (from SVN trunk + my patch):

        • works ok for my standard OpenLDAP setup
        • I've sent the build to user Vieri on the mailinglist and he reported a successful test on Active Directory login (using OpenLdap directory Type).
        Show
        Thibault Le Meur added a comment - Tested on a private build yesterday (from SVN trunk + my patch): works ok for my standard OpenLDAP setup I've sent the build to user Vieri on the mailinglist and he reported a successful test on Active Directory login (using OpenLdap directory Type).
        Hide
        Maxim Solodovnik added a comment -

        Closing all old 'Resolved' issues

        Show
        Maxim Solodovnik added a comment - Closing all old 'Resolved' issues
        Maxim Solodovnik made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Assignee Maxim Solodovnik [ solomax ]

          People

          • Assignee:
            Maxim Solodovnik
            Reporter:
            Thibault Le Meur
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development