This module provides a TokenStore class which is designed to manage
auth tokens required for different services.
Each token is valid for a set of scopes which is the start of a URL. An HTTP
client will use a token store to find a valid Authorization header to send
in requests to the specified URL. If the HTTP client determines that a token
has expired or been revoked, it can remove the token from the store so that
it will not be used in future requests.
||Manages Authorization tokens which will be sent in HTTP headers.|
||Methods defined here:|
- __init__(self, scoped_tokens=None)
- add_token(self, token)
- Adds a new token to the store (replaces tokens with the same scope).
token: A subclass of http_interface.GenericToken. The token object is
responsible for adding the Authorization header to the HTTP request.
The scopes defined in the token are used to determine if the token
is valid for a requested scope when find_token is called.
True if the token was added, False if the token was not added becase
no scopes were provided.
- find_token(self, url)
- Selects an Authorization header token which can be used for the URL.
url: str or atom.url.Url or a list containing the same.
The URL which is going to be requested. All
tokens are examined to see if any scopes begin match the beginning
of the URL. The first match found is returned.
The token object which should execute the HTTP request. If there was
no token for the url (the url did not begin with any of the token
scopes available), then the atom.http_interface.GenericToken will be
returned because the GenericToken calls through to the http client
without adding an Authorization header.
- remove_token(self, token)
- Removes the token from the token_store.
This method is used when a token is determined to be invalid. If the
token was found by find_token, but resulted in a 401 or 403 error stating
that the token was invlid, then the token should be removed to prevent
True if a token was found and then removed from the token
store. False if the token was not in the TokenStore.
Data descriptors defined here:
- dictionary for instance variables (if defined)
- list of weak references to the object (if defined)
||SCOPE_ALL = 'http'|
__author__ = 'api.jscudder (Jeff Scudder)'
||api.jscudder (Jeff Scudder)|