pyweblib.session (version 0.3.4) | index /usr/lib/python2.3/site-packages/pyweblib/session.py

`pyweblib.session - server-side web session handling
(C) 2001 by Michael Stroeder <michael@stroeder.com>
This module implements server side session handling stored in
arbitrary string-keyed dictionary objects
This module is distributed under the terms of the
GPL (GNU GENERAL PUBLIC LICENSE) Version 2
(see http://www.gnu.org/copyleft/gpl.html)
$Id: pyweblib.session.html,v 1.13 2004/08/24 10:26:30 michael Exp $`

Modules

``

pickle random | re string | threading time |

Classes

``

exceptions.Exception
  SessionException
    BadSessionId
    CorruptData
    GenerateIDError
    InvalidSessionId
    MaxSessionCountExceeded
    SessionExpired
    SessionHijacked
threading.Thread(threading._Verbose)
  CleanUpThread
WebSession

class BadSessionId(SessionException)
`` | `Raised if session ID not found in session dictionary.`

Method resolution order:
  BadSessionId
  SessionException
  exceptions.Exception

Methods defined here:

__init__(self, session_id)

__str__(self)

Methods inherited from exceptions.Exception:

__getitem__(...)

class CleanUpThread(threading.Thread)
`` | `Thread class for clean-up thread`

Method resolution order:
  CleanUpThread
  threading.Thread
  threading._Verbose
  __builtin__.object

Methods defined here:

__init__(self, sessionInstance, interval=60)

__repr__(self)

join(self, timeout=0.0)

run(self)
  `Thread function for cleaning up session database`

Methods inherited from threading.Thread:

getName(self)

isAlive(self)

isDaemon(self)

setDaemon(self, daemonic)

setName(self, name)

start(self)

Data and other attributes inherited from threading._Verbose:

__dict__ = <dictproxy object>
  `dictionary for instance variables (if defined)`

__weakref__ = <attribute '__weakref__' of '_Verbose' objects>
  `list of weak references to the object (if defined)`

class CorruptData(SessionException)
`` | `Raised if data was corrupt, e.g. UnpicklingError occured`

Method resolution order:
  CorruptData
  SessionException
  exceptions.Exception

Methods defined here:

__str__(self)

Methods inherited from SessionException:

__init__(self, *args)

Methods inherited from exceptions.Exception:

__getitem__(...)

class GenerateIDError(SessionException)
`` | `Raised if generation of unique session ID failed.`

Method resolution order:
  GenerateIDError
  SessionException
  exceptions.Exception

Methods defined here:

__init__(self, maxtry)

__str__(self)

Methods inherited from exceptions.Exception:

__getitem__(...)

class InvalidSessionId(SessionException)
`` | `Raised if session ID not found in session dictionary.`

Method resolution order:
  InvalidSessionId
  SessionException
  exceptions.Exception

Methods defined here:

__init__(self, session_id)

__str__(self)

Methods inherited from exceptions.Exception:

__getitem__(...)

class MaxSessionCountExceeded(SessionException)
`` | `Raised if maximum number of sessions is exceeded.`

Method resolution order:
  MaxSessionCountExceeded
  SessionException
  exceptions.Exception

Methods defined here:

__init__(self, max_session_count)

__str__(self)

Methods inherited from exceptions.Exception:

__getitem__(...)

class SessionException(exceptions.Exception)
`` | `Raised if`

Methods defined here:

__init__(self, *args)

Methods inherited from exceptions.Exception:

__getitem__(...)

__str__(...)

class SessionExpired(SessionException)
`` | `Raised if session is expired.`

Method resolution order:
  SessionExpired
  SessionException
  exceptions.Exception

Methods defined here:

__init__(self, timestamp, session_data)

__str__(self)

Methods inherited from exceptions.Exception:

__getitem__(...)

class SessionHijacked(SessionException)
`` | `Raised if hijacking of session was detected.`

Method resolution order:
  SessionHijacked
  SessionException
  exceptions.Exception

Methods defined here:

__init__(self, failed_vars)

__str__(self)

Methods inherited from exceptions.Exception:

__getitem__(...)

class WebSession
`` | `The session class which handles storing and retrieving of session data in a dictionary-like sessiondict object.`

Methods defined here:

__init__(self, dictobj=None, expireDeactivate=0, expireRemove=0, crossCheckVars=None, maxSessionCount=None)
  `dictobj
  has to be a instance of a dictionary-like object
  (e.g. derived from UserDict or shelve)
  expireDeactivate
  amount of time (secs) after which a session
  expires and a SessionExpired exception is
  raised which contains the session data.
  expireRemove
  Amount of time (secs) after which a session
  expires and the session data is silently deleted.
  A InvalidSessionId exception is raised in this case if
  the application trys to access the session ID again.
  crossCheckVars
  List of keys of variables cross-checked for each
  retrieval of session data in retrieveSession(). If None
  SESSION_CROSSCHECKVARS is used.
  maxSessionCount
  Maximum number of valid sessions. This affects
  behaviour of retrieveSession() which raises.
  None means unlimited number of sessions.`

cleanUp(self)
  `Search for expired session entries and delete them.
  Returns integer counter of deleted sessions as result.`

close(self)
  `Call close() if self.sessiondict has .close() method`

deleteSession(self, session_id)
  `Delete session_data referenced by session_id.`

newSession(self, env={})
  `Store session data under session id`

retrieveSession(self, session_id, env={})
  `Retrieve session data`

storeSession(self, session_id, session_data)
  `Store session_data under session_id.`

sync(self)
  `Call sync if self.sessiondict has .sync() method`

Functions

``

ThreadingLock = allocate_lock(...)
  `allocate_lock() -> lock object
  (allocate() is an obsolete synonym)
  Create a new lock object. See LockType.__doc__ for information about locks.`

Data

``

SESSION_CROSSCHECKVARS = ('\n List of environment variables assumed to be c...gh a network of web proxy siblings.\n REMOTE_ADDR', 'REMOTE_HOST', 'REMOTE_IDENT', 'REMOTE_USER', 'FORWARDED_FOR', 'HTTP_X_FORWARDED_FOR', 'HTTP_USER_AGENT', 'HTTP_ACCEPT_CHARSET', 'SSL_SESSION_ID', 'SSL_CLIENT_V_START', 'SSL_CLIENT_V_END', 'SSL_CLIENT_I_DN', 'SSL_CLIENT_IDN', 'SSL_CLIENT_S_DN', 'SSL_CLIENT_SDN', 'SSL_CLIENT_M_SERIAL', 'SSL_CLIENT_CERT_SERIAL')
SESSION_ID_CHARS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
__version__ = '0.3.4'