Authenicate fails with IndexError exception with LDAP and user_enabled_emulation

Bug #1375772 reported by Johan
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Identity (keystone)
Fix Released
High
Nathan Kinder

Bug Description

I am running latest keystone from git (82ded4a) and am using keystone configured with the LDAP and using user_enabled_emulation.

I get the exception "IndexError: string index out of range" when trying to authenticate.

My research suggests that it's the commit that fixed bug 1340041 that introduced this bug. Everything works when I revert the commit that fixed that.

The problem is the following:

in line 1672 (keystone/common/ldap/core.py) for the patch for the above bug the ldap.dn.str2dn array gets converted to a string which causes naming_rdn to contain "[" and then I get an exception on line 1675 because the string has length one.

Johan (johan-viklund)
description: updated
Dolph Mathews (dolph)
Changed in keystone:
importance: Undecided → High
status: New → Triaged
tags: added: juno-rc-potential
Nathan Kinder (nkinder)
Changed in keystone:
assignee: nobody → Nathan Kinder (nkinder)
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to keystone (master)

Fix proposed to branch: master
Review: https://review.openstack.org/125083

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to keystone (proposed/juno)

Fix proposed to branch: proposed/juno
Review: https://review.openstack.org/125258

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to keystone (master)

Reviewed: https://review.openstack.org/125083
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=5380ddaadb0ce34b866b097cb6ac1396d2b30100
Submitter: Jenkins
Branch: master

commit 5380ddaadb0ce34b866b097cb6ac1396d2b30100
Author: Nathan Kinder <email address hidden>
Date: Tue Sep 30 07:39:33 2014 -0700

    Fix parsing of emulated enabled DN

    If a non-default emulated enabled DN is specified in configuration,
    the DN structure returned from python-ldap is incorrectly converted
    to a string. This leads to an index error when we attempt to extract
    the RDN attribute and value.

    This patch removes the incorrect string conversion and instead does
    the proper conversion on the RDN strings that we extract.

    Change-Id: I8f0c4594cfa9a41e1875870c3eb63fae32c8c041
    Resolves-bug: #1375772

Changed in keystone:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to keystone (proposed/juno)

Reviewed: https://review.openstack.org/125258
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=eefa0feaf5aa933fb9cb6313eb58ad3b0cb501fc
Submitter: Jenkins
Branch: proposed/juno

commit eefa0feaf5aa933fb9cb6313eb58ad3b0cb501fc
Author: Nathan Kinder <email address hidden>
Date: Tue Sep 30 07:39:33 2014 -0700

    Fix parsing of emulated enabled DN

    If a non-default emulated enabled DN is specified in configuration,
    the DN structure returned from python-ldap is incorrectly converted
    to a string. This leads to an index error when we attempt to extract
    the RDN attribute and value.

    This patch removes the incorrect string conversion and instead does
    the proper conversion on the RDN strings that we extract.

    Change-Id: I8f0c4594cfa9a41e1875870c3eb63fae32c8c041
    Resolves-bug: #1375772
    (cherry picked from commit 5380ddaadb0ce34b866b097cb6ac1396d2b30100)

Thierry Carrez (ttx)
Changed in keystone:
milestone: none → juno-rc2
status: Fix Committed → Fix Released
tags: removed: juno-rc-potential
Thierry Carrez (ttx)
Changed in keystone:
milestone: juno-rc2 → 2014.2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to keystone (master)

Fix proposed to branch: master
Review: https://review.openstack.org/128930

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to keystone (master)
Download full text (5.5 KiB)

Reviewed: https://review.openstack.org/128930
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=b788121927abe04a1bbbd1d47eb04cd8d9311904
Submitter: Jenkins
Branch: master

commit ef8d9aa4e1ca3b5465a5bba0cdb6dcb9be1fe9ca
Author: Dolph Mathews <email address hidden>
Date: Tue Oct 7 14:35:28 2014 +0000

    updated translations

    this boils down to:

    $ python setup.py extract_messages
    $ python setup.py update_catalog --no-fuzzy-matching \
      --ignore-obsolete=true
    $ source \
      ../../openstack-infra/project-config/jenkins/scripts/common_translation_update.sh
    $ setup_loglevel_vars
    $ cleanup_po_files keystone

    Change-Id: I2a03f3d7eebe0be0250d4834256dfa3c634dbb48

commit 079c6ad6c911226251fa2a601a27296cfe15e0b3
Author: Henry Nash <email address hidden>
Date: Sun Sep 28 11:16:26 2014 +0100

    Ensure sql upgrade tests can run with non-sqlite databases.

    This patch fixes the issues that were preventing the running of
    live sql upgrade tests (either by running test_sql_upgrade directly
    or via test_sql_livetest), namely:

    - Dropping the tables that were in existence before the current
      scope of migration in an order that is FK friendly
    - Fixing an issue where the tables were being dropped in the
      wrong order in the downgrade of federation
    - Ensuring we don't hold sessions open over upgrade/downgrade
      steps in our test methods

    Limitations:

    - This patch has not been tested with DB2

    Closes-Bug: 1363047
    Closes-Bug: 1375937
    Change-Id: Ied4741a9646b57bc6f2ddcdc8a380ea55b2a9634

commit 4ae1879a79e338e7323935fd17896ba8a4e84fb9
Author: David Stanek <email address hidden>
Date: Fri Oct 3 18:52:54 2014 +0000

    Validates controller methods exist when specified

    It was possible to specify an invalid controller method in a router.
    This will not cause an error until runtime. This change catches the
    error much earlier in the application lifecycle. In fact with this
    change errors should not be able to pass unit tests even if there is
    no specific test for the behavior.

    Related-bug: #1377304
    Change-Id: Icc5646c143a234127a8b4ac8a74342ef3dca7e80

commit 5caf29ad5d90a65d3b10dc55bb101c96b543e4f8
Author: David Stanek <email address hidden>
Date: Fri Oct 3 20:00:30 2014 +0000

    Fixes an error deleting an endpoint group project

    Deleting a endpoint group project fails because the router specifies
    a controller method that doesn't exist. This returns a 500 error to
    the user for what should be a successful operation.

    Change-Id: I3b91d8023d31555893fb944da73633a69d8e286f
    Closes-bug: #1377304

commit c64eae8678327067ef22099e846d927bccb4a804
Author: Brant Knudson <email address hidden>
Date: Wed Oct 1 11:11:21 2014 -0500

    Fix tests comparing tokens

    There were tests that verified that the PKI token body could be
    encrypted with CMS and compared to the token ID in the response.
    This test isn't safe because the token body may be different than
    the token encrypted with CMS since the order of items in the dict
    can change.
    ...

Read more...

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.