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.
  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.
bool useNonce(self, server_url, timestamp, salt)
Return whether this nonce is valid.
  cleanup(self)
Remove expired entries from the database.
int cleanupAssociations(self)
Remove expired associations from the store.
int cleanupNonces(self)
Remove expired nonces from the store.

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


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__

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

useNonce(self, server_url, timestamp, salt)

source code 

Return whether this nonce is valid.

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

cleanup(self)

source code 

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

() -> NoneType
Overrides: interface.OpenIDStore.cleanup

cleanupAssociations(self)

source code 

Remove expired associations from the store.

This method is not called in the normal operation of the library. It provides a way for store admins to keep their storage from filling up with expired data.
Returns: int
the number of associations expired.
Overrides: interface.OpenIDStore.cleanupAssociations
(inherited documentation)

cleanupNonces(self)

source code 

Remove expired nonces from the store.

Discards any nonce from storage that is old enough that its timestamp would not pass useNonce.

This method is not called in the normal operation of the library. It provides a way for store admins to keep their storage from filling up with expired data.
Returns: int
the number of nonces expired.
Overrides: interface.OpenIDStore.cleanupNonces
(inherited documentation)