OpenStack Identity (Keystone)
Go to file
Adam Young 75abc21ecf Replace revoke tree with linear search
The RevokeTree was built out of an attempt to optimize the search for
a match between a candidate token and the list of revocation events.
The performance proved to be poor, mostly due to the cost of creating
and checking hash values.

The RevokeTree code is also so complex that most of the team could not
understand it or troubleshoot it.  There are some subtle bugs due to
race conditions with revocation events, and it is impossible to track
them down due to the code complexity.

This change replaces the tree based search with a linear search through
the list of revocation events.  A failure-to-match will pass through
the entire list.  A revoked token should match on O(n/2) comparisons.

With the past year of Fernet tokens in deployment, the feedback is that
the number of revocation events is small, and they only are kept for
the lifetime of the tokens (usually 1-8 hours) so the linear search is
not expected to slow down token validations in live deployments.

Future work will also reduce the number of revocation events.

Change-Id: Ib6a686494e897840b09d134ecf1ca50ce712f281
2016-05-24 13:11:30 -04:00
config-generator Remove eventlet support 2016-04-18 18:07:28 +00:00
doc Fix broken link of federation docs 2016-05-20 20:01:48 +09:00
etc Updating sample configuration file 2016-05-12 20:36:23 +00:00
examples/pki Correct bashate issues in gen_pki.sh 2015-10-20 10:40:10 -05:00
httpd Document running in uwsgi proxied by apache 2016-03-15 15:04:13 -05:00
keystone Replace revoke tree with linear search 2016-05-24 13:11:30 -04:00
keystone_tempest_plugin Imported Translations from Zanata 2016-04-21 07:06:59 +00:00
rally-jobs [rally] remove deprecated arg 2015-10-29 16:34:58 +02:00
releasenotes Merge "reorganize mitaka release notes" 2016-05-21 20:34:01 +00:00
tools Remove helper script for py34 2016-05-21 23:46:58 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:27:58 +00:00
.gitignore include sample config file in docs 2016-02-08 16:40:58 -05:00
.gitreview Add .gitreview config file for gerrit. 2011-10-24 14:48:03 -04:00
.mailmap update mailmap with gyee's new email 2015-11-03 16:12:01 -08:00
.testr.conf Stop using oslotest.BaseTestCase 2016-03-01 21:44:20 +00:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2015-05-16 14:55:07 +00:00
HACKING.rst Use oslo.log instead of incubator 2015-02-14 05:34:52 +00:00
LICENSE Added Apache 2.0 License information. 2012-02-15 17:48:33 -08:00
MANIFEST.in Update MANIFEST.in 2015-06-28 11:01:35 -05:00
README.rst Replace github reference by git.openstack.org and change a doc link 2015-05-07 10:08:10 +08:00
babel.cfg setting up babel for i18n work 2012-06-21 18:03:09 -07:00
other-requirements.txt Add other-requirements.txt 2016-04-21 16:10:51 -05:00
requirements.txt Updated from global requirements 2016-05-23 11:59:31 +00:00
setup.cfg Add Python 3 classification. 2016-05-20 19:29:58 +00:00
setup.py Updated from global requirements 2015-09-17 12:12:39 +00:00
test-requirements.txt Updated from global requirements 2016-05-18 12:06:32 -04:00
tox.ini Remove helper script for py34 2016-05-21 23:46:58 +00:00

README.rst

OpenStack Keystone

Keystone provides authentication, authorization and service discovery mechanisms via HTTP primarily for use by projects in the OpenStack family. It is most commonly deployed as an HTTP interface to existing identity systems, such as LDAP.

Developer documentation, the source of which is in doc/source/, is published at:

http://docs.openstack.org/developer/keystone/

The API specification and documentation are available at:

http://specs.openstack.org/openstack/keystone-specs/

The canonical client library is available at:

https://git.openstack.org/cgit/openstack/python-keystoneclient

Documentation for cloud administrators is available at:

http://docs.openstack.org/

The source of documentation for cloud administrators is available at:

https://git.openstack.org/cgit/openstack/openstack-manuals

Information about our team meeting is available at:

https://wiki.openstack.org/wiki/Meetings/KeystoneMeeting

Bugs and feature requests are tracked on Launchpad at:

https://bugs.launchpad.net/keystone

Future design work is tracked at:

http://specs.openstack.org/openstack/keystone-specs/#identity-program-specifications

Contributors are encouraged to join IRC (#openstack-keystone on freenode):

https://wiki.openstack.org/wiki/IRC

For information on contributing to Keystone, see CONTRIBUTING.rst.