Uploaded image for project: 'Crowd Data Center'
  1. Crowd Data Center
  2. CWD-2854

Mixed case with LDAP, couldn't synchronize users and groups

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • 2.5.1
    • 2.4
    • None

      Error:

       11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ KaaaE ] casing differs from local username [ kaaae ]. User details will be kept updated, but the username cannot be updated
       11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ NPtest ] casing differs from local username [ nptest ]. User details will be kept updated, but the username cannot be updated
       11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ PRconf ] casing differs from local username [ prconf ]. User details will be kept updated, but the username cannot be updated
       11:22:42,427 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ RaSh ] casing
      

      Steps to Reproduce:

      1) Create a Crowd internal directory
      2) Create a user in that directory named 'dbtte'
      3) Add that user to the 'jira-users' group
      4) Confirm that that user can log in to JIRA, assign them some issues, etc
      5) Connect Crowd to an LDAP directory as a delegated auth directory
      6) Create a user 'DBtte' in LDAP
      7) Authenticate as the LDAP user via JIRA/Crowd
      8) Create a 'jira-users' group for the LDAP directory
      9) Add the 'DBtte' LDAP user to 'jira-users'
      10) Delete the 'dbtte' internal user
      11) Attempt to log in to Crowd

      Other steps to reproduce (Crowd Internal Directory only)

      1. Create a user in Crowd which will be available to the Confluence application using the following details
        • Email Address: CamelCaseTC1@test.test
        • Active: Checked
        • Username: CamelCaseTC1
        • FirstName: CamelCaseTC1
        • LastName: CamelCaseTC1
        • Groups: Group1, Group2, Group3
      2. Within Confluence, force a Crowd Directory Sync & confirm that the user exists with the correct group memberships
      3. Back in Crowd, delete the previous user
      4. Create a user in Crowd which will be available to the Confluence application using the following details, but with the username.tolower() & an additional group membership
        • Email Address: CamelCaseTC1@test.test
        • Active: Checked
        • Username: camelcasetc1
        • FirstName: CamelCaseTC1
        • LastName: CamelCaseTC1
        • Groups: Group1, Group2, Group3, Group4
      5. Within Confluence, force a Crowd Directory Sync (or two) & wait for the hibernate SQL exception to appear

      Workarounds

      1. Set all users and groups that experience this issue back to the original casing, specified in 'local username' or 'local groupname'.
      2. Disable the directory by unticking 'Active'. Create a new directory, copying the settings of the existing directory, and sync that. When you're satisfied that everything has come across correctly and you will not be missing any users/groups/memberships, remove the old directory.

            [CWD-2854] Mixed case with LDAP, couldn't synchronize users and groups

            Monique Khairuliana (Inactive) made changes -
            Workflow Original: Simplified Crowd Development Workflow v2 - restricted [ 1511151 ] New: JAC Bug Workflow v3 [ 3365646 ]
            Status Original: Resolved [ 5 ] New: Closed [ 6 ]
            vkharisma made changes -
            Link New: This issue relates to JRACLOUD-29025 [ JRACLOUD-29025 ]
            vkharisma made changes -
            Link New: This issue relates to CONFCLOUD-25646 [ CONFCLOUD-25646 ]
            Owen made changes -
            Workflow Original: Simplified Crowd Development Workflow v2 [ 1393356 ] New: Simplified Crowd Development Workflow v2 - restricted [ 1511151 ]
            Owen made changes -
            Workflow Original: Crowd Development Workflow v2 [ 390281 ] New: Simplified Crowd Development Workflow v2 [ 1393356 ]
            Paul Greig made changes -
            Remote Link Original: This issue links to "Page (Extranet)" [ 20152 ] New: This issue links to "Page (Extranet)" [ 20152 ]
            Paul Greig made changes -
            Remote Link Original: This issue links to "Wiki Page (Extranet)" [ 20152 ] New: This issue links to "Page (Extranet)" [ 20152 ]
            Diego Berrueta made changes -
            Link New: This issue incorporates CWD-3773 [ CWD-3773 ]
            Denise Unterwurzacher [Atlassian] (Inactive) made changes -
            Regular Expression Original: casing\sdiffers\sfrom\slocal New: casing differs
            Denise Unterwurzacher [Atlassian] (Inactive) made changes -
            Description Original: h3.Error:
            {code}
             11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ KaaaE ] casing
            differs from local username [ kaaae ]. User details will be kept updated, but the username cannot be updated
             11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ NPtest ] casing d
            iffers from local username [ nptest ]. User details will be kept updated, but the username cannot be updated
             11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ PRconf ] casing d
            iffers from local username [ prconf ]. User details will be kept updated, but the username cannot be updated
             11:22:42,427 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ RaSh ] casing
            {code}

            h3.Steps to Reproduce:

            1) Create a Crowd internal directory
            2) Create a user in that directory named 'dbtte'
            3) Add that user to the 'jira-users' group
            4) Confirm that that user can log in to JIRA, assign them some issues, etc
            5) Connect Crowd to an LDAP directory as a delegated auth directory
            6) Create a user 'DBtte' in LDAP
            7) Authenticate as the LDAP user via JIRA/Crowd
            8) Create a 'jira-users' group for the LDAP directory
            9) Add the 'DBtte' LDAP user to 'jira-users'
            10) Delete the 'dbtte' internal user
            11) Attempt to log in to Crowd

            h3. Other steps to reproduce (Crowd Internal Directory only)
            # Create a user in Crowd which will be available to the Confluence application using the following details
            #- Email Address: CamelCaseTC1@test.test
            #- Active: Checked
            #- Username: CamelCaseTC1
            #- FirstName: CamelCaseTC1
            #- LastName: CamelCaseTC1
            #- Groups: Group1, Group2, Group3
            # Within Confluence, force a Crowd Directory Sync & confirm that the user exists with the correct group memberships
            # Back in Crowd, delete the previous user
            # Create a user in Crowd which will be available to the Confluence application using the following details, but with the username.tolower() & an additional group membership
            #- Email Address: CamelCaseTC1@test.test
            #- Active: Checked
            #- Username: camelcasetc1
            #- FirstName: CamelCaseTC1
            #- LastName: CamelCaseTC1
            #- Groups: Group1, Group2, Group3, Group4
            # Within Confluence, force a Crowd Directory Sync (or two) & wait for the hibernate SQL exception to appear

            h3.Workaround:

            Set all LDAP users to lowercase.
            New: h3.Error:
            {noformat}
             11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ KaaaE ] casing differs from local username [ kaaae ]. User details will be kept updated, but the username cannot be updated
             11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ NPtest ] casing differs from local username [ nptest ]. User details will be kept updated, but the username cannot be updated
             11:22:42,426 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ PRconf ] casing differs from local username [ prconf ]. User details will be kept updated, but the username cannot be updated
             11:22:42,427 QuartzWorker-1 WARN ServiceRunner [atlassian.crowd.directory.DbCachingRemoteChangeOperations] remote username [ RaSh ] casing
            {noformat}

            h3.Steps to Reproduce:

            1) Create a Crowd internal directory
            2) Create a user in that directory named 'dbtte'
            3) Add that user to the 'jira-users' group
            4) Confirm that that user can log in to JIRA, assign them some issues, etc
            5) Connect Crowd to an LDAP directory as a delegated auth directory
            6) Create a user 'DBtte' in LDAP
            7) Authenticate as the LDAP user via JIRA/Crowd
            8) Create a 'jira-users' group for the LDAP directory
            9) Add the 'DBtte' LDAP user to 'jira-users'
            10) Delete the 'dbtte' internal user
            11) Attempt to log in to Crowd

            h3. Other steps to reproduce (Crowd Internal Directory only)
            # Create a user in Crowd which will be available to the Confluence application using the following details
            #- Email Address: CamelCaseTC1@test.test
            #- Active: Checked
            #- Username: CamelCaseTC1
            #- FirstName: CamelCaseTC1
            #- LastName: CamelCaseTC1
            #- Groups: Group1, Group2, Group3
            # Within Confluence, force a Crowd Directory Sync & confirm that the user exists with the correct group memberships
            # Back in Crowd, delete the previous user
            # Create a user in Crowd which will be available to the Confluence application using the following details, but with the username.tolower() & an additional group membership
            #- Email Address: CamelCaseTC1@test.test
            #- Active: Checked
            #- Username: camelcasetc1
            #- FirstName: CamelCaseTC1
            #- LastName: CamelCaseTC1
            #- Groups: Group1, Group2, Group3, Group4
            # Within Confluence, force a Crowd Directory Sync (or two) & wait for the hibernate SQL exception to appear

            h3.Workarounds
            # Set all users and groups that experience this issue back to the original casing, specified in 'local username' or 'local groupname'.
            # Disable the directory by unticking 'Active'. Create a new directory, copying the settings of the existing directory, and sync that. When you're satisfied that everything has come across correctly and you will not be missing any users/groups/memberships, remove the old directory.

              ahempel Adrian Hempel [Atlassian]
              wzanchet William Zanchet (Inactive)
              Affected customers:
              2 This affects my team
              Watchers:
              10 Start watching this issue

                Created:
                Updated:
                Resolved: