Ignore:
Timestamp:
04/11/10 13:55:40 (10 years ago)
Author:
pjkersha
Message:

Integrated SAML ESGF Group/Role? attribute value type into SAML Attribute Authority client unit tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/NDGSecurity/python/ndg_security_server/ndg/security/server/xacml/pip/saml_pip.py

    r7359 r7698  
    4545    __slots__ = ('__session', ) 
    4646     
    47     def __init__(self, _id, data_dir=None): 
     47    def __init__(self, _id, data_dir=None, timeout=None): 
    4848        """ 
    4949        @param _id: unique identifier for session to be created, or one to reload 
     
    5555        If set to None, sessions are cached in memory only. 
    5656        @type data_dir: None type / basestring 
     57        @param timeout: time in seconds for individual caches' lifetimes.  Set  
     58        to None to set no expiry. 
     59        @type timeout: float/int/long or None type 
    5760        """                 
    5861        # Expecting URIs for Ids, make them safe for storage by encoding first 
     
    6467        self.__session = beaker.session.Session({}, id=encodedId,  
    6568                                                data_dir=data_dir, 
     69                                                timeout=timeout, 
    6670                                                use_cookies=False) 
    6771        if 'wallet' not in self.__session: 
     
    153157        '__cacheSessions', 
    154158        '__sessionCacheDataDir', 
     159        '__sessionCacheTimeout', 
    155160        '__sessionCache' 
    156161    ) 
    157162     
    158     def __init__(self, sessionCacheDataDir=None): 
     163    def __init__(self, sessionCacheDataDir=None, sessionCacheTimeout=None): 
    159164        '''Initialise settings for connection to an Attribute Authority 
    160165         
     
    164169        If set to None, sessions are cached in memory only. 
    165170        @type sessionCacheDataDir: None type / basestring 
     171        @param sessionCacheTimeout: time in seconds for individual caches'  
     172        lifetimes.  Set to None to set no expiry. 
     173        @type sessionCacheTimeout: float/int/long/string or None type 
    166174        ''' 
     175        self.sessionCacheDataDir = sessionCacheDataDir 
     176        self.sessionCacheTimeout = sessionCacheTimeout 
     177         
    167178        self.__subjectAttributeId = None 
    168179        self.__mappingFilePath = None 
     
    175186         
    176187        self.__cacheSessions = True 
    177         self.__sessionCacheDataDir = sessionCacheDataDir 
    178188        self.__sessionCache = None 
     189 
     190    def _getSessionCacheTimeout(self): 
     191        return self.__sessionCacheTimeout 
     192 
     193    def _setSessionCacheTimeout(self, value): 
     194        if value is None: 
     195            self.__sessionCacheTimeout = value 
     196          
     197        elif isinstance(value, basestring): 
     198            self.__sessionCacheTimeout = float(value) 
     199              
     200        elif isinstance(value, (int, float, long)): 
     201            self.__sessionCacheTimeout = value 
     202             
     203        else: 
     204            raise TypeError('Expecting None, float, int, long or string type; ' 
     205                            'got %r' % type(value)) 
     206 
     207    sessionCacheTimeout = property(_getSessionCacheTimeout,  
     208                                   _setSessionCacheTimeout,  
     209                                   doc='Set individual session caches to ' 
     210                                       'timeout after this period (seconds).  ' 
     211                                       'Set to None to have no timeout') 
    179212 
    180213    def _getCacheSessions(self): 
     
    423456        if self.cacheSessions: 
    424457            sessionCache = SessionCache(subjectId, 
    425                                         data_dir=self.__sessionCacheDataDir) 
     458                                        data_dir=self.__sessionCacheDataDir, 
     459                                        timeout=self.__sessionCacheTimeout) 
    426460            assertions = sessionCache.retrieve(attributeAuthorityURI) 
    427461        else: 
Note: See TracChangeset for help on using the changeset viewer.