Package openid :: Package store :: Module filestore :: Class FileOpenIDStore
[frames] | no frames]

Class FileOpenIDStore

source code

           object --+    
                    |    
interface.OpenIDStore --+
                        |
                       FileOpenIDStore

This is a filesystem-based store for OpenID associations and nonces. This store should be safe for use in concurrent systems on both windows and unix (excluding NFS filesystems). There are a couple race conditions in the system, but those failure cases have been set up in such a way that the worst-case behavior is someone having to try to log in a second time.

Most of the methods of this class are implementation details. People wishing to just use this store need only pay attention to the __init__ method.

Methods of this object can raise OSError if unexpected filesystem conditions, such as bad permissions or missing directories, occur.

Instance Methods [hide private]
  __init__(self, directory)
Initializes a new FileOpenIDStore.
  readAuthKey(self)
Read the auth key from the auth key file.
  createAuthKey(self)
Generate a new random auth key and safely store it in the location specified by self.auth_key_name.
str getAuthKey(self)
Retrieve the auth key from the file specified by self.auth_key_name, creating it if it does not exist.
  getAssociationFilename(self, server_url, handle)
Create a unique filename for a given server url and handle.
NoneType storeAssociation(self, server_url, association)
Store an association in the association directory.
Association or NoneType getAssociation(self, server_url, handle=None)
Retrieve an association.
bool or int removeAssociation(self, server_url, handle)
Remove an association if it exists.
NoneType storeNonce(self, nonce)
Mark this nonce as present.
bool or int useNonce(self, nonce)
Return whether this nonce is present.
  clean(self)
Remove expired entries from the database.

Inherited from interface.OpenIDStore: isDumb

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__


Class Variables [hide private]

Inherited from interface.OpenIDStore: AUTH_KEY_LEN


Properties [hide private]

Inherited from object: __class__


Method Details [hide private]

__init__(self, directory)
(Constructor)

source code 

Initializes a new FileOpenIDStore. This initializes the nonce and association directories, which are subdirectories of the directory passed in.
Parameters:
  • directory (str) - This is the directory to put the store directories in.
Overrides: object.__init__

readAuthKey(self)

source code 

Read the auth key from the auth key file. Will return None if there is currently no key.

() -> str or NoneType

createAuthKey(self)

source code 

Generate a new random auth key and safely store it in the location specified by self.auth_key_name.

() -> str

getAuthKey(self)

source code 

Retrieve the auth key from the file specified by self.auth_key_name, creating it if it does not exist.

() -> str
Returns: str
The key. It should be AUTH_KEY_LEN bytes in length, and use the full range of byte values. That is, it should be treated as a lump of binary data stored in a str instance.
Overrides: interface.OpenIDStore.getAuthKey

getAssociationFilename(self, server_url, handle)

source code 

Create a unique filename for a given server url and handle. This implementation does not assume anything about the format of the handle. The filename that is returned will contain the domain name from the server URL for ease of human inspection of the data directory.

(str, str) -> str

storeAssociation(self, server_url, association)

source code 

Store an association in the association directory.

(str, Association) -> NoneType
Returns: NoneType
None
Overrides: interface.OpenIDStore.storeAssociation

getAssociation(self, server_url, handle=None)

source code 

Retrieve an association. If no handle is specified, return the association with the latest expiration.

(str, str or NoneType) -> Association or NoneType
Returns: Association or NoneType
The Association for the given identity server.
Overrides: interface.OpenIDStore.getAssociation

removeAssociation(self, server_url, handle)

source code 

Remove an association if it exists. Do nothing if it does not.

(str, str) -> bool
Returns: bool or int
Returns whether or not the given association existed.
Overrides: interface.OpenIDStore.removeAssociation

storeNonce(self, nonce)

source code 

Mark this nonce as present.

str -> NoneType
Returns: NoneType
None
Overrides: interface.OpenIDStore.storeNonce

useNonce(self, nonce)

source code 

Return whether this nonce is present. As a side effect, mark it as no longer present.

str -> bool
Returns: bool or int
Whether or not the nonce was valid.
Overrides: interface.OpenIDStore.useNonce

clean(self)

source code 

Remove expired entries from the database. This is potentially expensive, so only run when it is acceptable to take time.

() -> NoneType