Minor update to the readme file

The directory name seems to have changed from "keystone_auth" to
"openstack_auth", but the readme still points to the old directory name.
This patch fixes it.

Change-Id: I11398e00d9f665e8079e8e2845bc81ffbc6a6966
Adding back the forms.Login import

Changing this breaks all older versions of Horizon. Adding it back
in to allow older versions to continue working.

Closes-Bug: #1332855
Change-Id: Icdb206d4095b1746eef9be02ca63f2aa9cfe1081
Updated from global requirements

Change-Id: I0e89fa48c0ffebbd2a54f516a72f798e784cb307
Merge "Minor update to the readme file"
Imported Translations from Transifex

Change-Id: I9d56443fefcb901851fd00964aa5befe42f2a11b
Imported Translations from Transifex

Change-Id: I6bb638b5b79a916b6bdfe21410b72de939806b94
Replace UserManager/TenantManager with None in tests

UserManager/TenantManager seems private classes in keystoneclient
and the interface was changed in keystoneclient 0.10.0.
django-openstack-auth tests actually don't need these managers,
so this commit makes test data not use these classes.

Change-Id: I9398c705acab262e89d4801da84ccea188980d99
Closes-Bug: #1349485
Fix H4xx docstring issues

Completes blueprint openstack-hacking-compliant

Change-Id: Ib286972b65e0e3282db483718421f7f28e8c6cd1
Cache the User's Project by Token ID

Project list fetched for each request. The patches caches the
project list and uses the token as the key in the cache. When
the user logout or switch project, the project list is removed
from the cache.

Change-Id: I2386d7a342cf02a0252e97cc48c5349ccab8a9eb
Closes-bug: 1241838
Adding log message for keystone API mismatch

When the Horizon settings file specifies a v2.0 endpoint and
indicates v3 API to use with Keystone, the code redirects the
v2.0 to v3 without notice. Logging a warning, so deployers can
address the mismatch.

Closes-Bug: #1291457
Change-Id: If9e9e40af5ac23e8dea552d2d1a04597c67837a7
Updated from global requirements

Change-Id: Ied3a112db624826bd0e80a909da85bc832510dc3
Merge "Cache the User's Project by Token ID"
Updated from global requirements

Change-Id: I266ff7740cae49c2c33b8536bbdd52db97b9dabc
Updated from global requirements

Change-Id: I4b2838822df8e6141abd7ef0f79774c6fb911e3a
Add user_domain_name in the user object

user_domain_name is exposed by keystoneclient, adding
this information for horizon as well.

Change-Id: Ic09b892bcb7669ed19a353e535d1aea43bbe92b7
Closes-Bug: #1360521
Configurable token hashing algorithm

The user's authentication token was hashed using the MD5 algorithm.
The MD5 algorithm shouldn't be used because of the potential for
hash collisions. Some security standards mandate a SHA2 algorithm
or better must be used.

With this change the algorithm to use for hashing tokens can be
configured by setting the OPENSTACK_TOKEN_HASH_ALGORITHM
configuration option to a hash algorithm supported by Python's
hashlib library[1]. For example, a deployer could set the option to
'sha256' to meet a SHA2 security standard.

The algorithm chosen must match the hash algorithm that the
identity server is configured to use (Keystone and the auth_token
middleware can be configured to use any hash algorithm supported by
hashlib).

This is for security hardening.

[1] https://docs.python.org/2/library/hashlib.html

DocImpact
SecurityImpact

Change-Id: I9e3eba7e0a12ae40a08d0ed851ea916ec6591bcc
Closes-Bug: #1174499
Added url_path_replace and has_in_url_path methods

utils.py, views.py and backend.py were using .replace('v3', 'v2.0') and
.replace('v2.0', 'v3') methods on url strings.
This is BAD because if you have v3 in your url's domain it brakes it.

A new url_path_replace method now only performs the replaces in the url path
and leaves the domain unchanged.

Some checks where performed to test if a substring was in the url path but the
tests where performed on the whole url and could return a false positive if the
substring exists in the domain name or in the query string.
The new has_in_url_path method checks only if the substring is in the path of
the url.

Change-Id: I030d928d83e5c91cf26101221649a299d146747d
Closes-Bug: 1324948
Merge "Add user_domain_name in the user object"
Merge "Added url_path_replace and has_in_url_path methods"
Consider old version of token without 'user_domain_name' attr

Closes-Bug: #1363515
Change-Id: I252b99fba3c48a7ed27af1b7da3b1cb037555eb8