Comment 6 for bug 1404294

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

Reviewed: https://review.openstack.org/140765
Committed: https://git.openstack.org/cgit/openstack/keystonemiddleware/commit/?id=c97be0a9ee778f25e2931aeb1f678c145c2f1d2b
Submitter: Jenkins
Branch: master

commit c97be0a9ee778f25e2931aeb1f678c145c2f1d2b
Author: Brant Knudson <email address hidden>
Date: Wed Dec 10 09:46:44 2014 -0600

    Fix auth_token does version request for no token

    When a request came in with no token and the auth_token middleware
    wasn't configured with an auth version, a request would be made to
    fetch the versions supported by the server. This causes problems in
    projects that have unit tests using the auth_token middleware because
    they didn't expect to have an Identity server running.

    The fix for this is to refactor the identity version handling to a
    strategy pattern.

    There were 2 subclasses of _IdentityServer in auth_token, one for
    V2 and one for V3. This is excessive since there's only a couple of
    methods that are needed and not all the _IdentityServer class. Using
    the pricipal of preferring composition over inheritance, the code to
    handle V2/V3 is moved into a simpler strategy pattern. This also
    moves code out of the AuthProtocol class which is too complicated
    already, and it allows more refactoring since the _IdentityServer
    reference can be created and passed to extracted classes for them
    to use.

    Closes-Bug: #1404294
    Change-Id: If69fbb73bea268b96e4b1e9ad81a736495a2b58a