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/ctx_handler/saml_ctx_handler.py

    r7413 r7698  
    3232 
    3333from ndg.security.server.xacml.pip.saml_pip import PIP 
     34from ndg.security.common.utils.factory import importModuleObject 
    3435 
    3536 
     
    7980        '__issuerProxy',  
    8081        '__assertionLifetime', 
     82        '__xacmlExtFunc' 
    8183    ) 
    8284     
     
    9294        self.__assertionLifetime = 0. 
    9395        self.__policyFilePath = None 
    94      
     96        self.__xacmlExtFunc = None 
     97 
     98    def _getXacmlExtFunc(self): 
     99        """Get XACML extensions function""" 
     100        return self.__xacmlExtFunc 
     101 
     102    def _setXacmlExtFunc(self, value): 
     103        """Set XACML extensions function""" 
     104        if isinstance(value, basestring): 
     105            self.__xacmlExtFunc = importModuleObject(value) 
     106             
     107        elif callable(value): 
     108            self.__xacmlExtFunc = value 
     109             
     110        else: 
     111            raise TypeError('Expecting module object import path string or ' 
     112                            'callable; got %r' % type(value)) 
     113             
     114    xacmlExtFunc = property(_getXacmlExtFunc, _setXacmlExtFunc,  
     115                            doc="Function or other callable which will be " 
     116                                "called to set any XACML specific " 
     117                                "extensions such as new custom attribute value " 
     118                                "types.  The function should accept no input " 
     119                                "arguments and any return value is ignored")    
     120     
     121    def load(self): 
     122        """Load Policy file, mapping file and extensions function.  In each case 
     123        load only if they're set 
     124        """ 
     125        if self.policyFilePath: 
     126            self.pdp = PDP.fromPolicySource(self.policyFilePath,  
     127                                            XacmlPolicyReaderFactory) 
     128         
     129        if self.pip.mappingFilePath: 
     130            self.pip.readMappingFile() 
     131             
     132        if self.xacmlExtFunc: 
     133            self.xacmlExtFunc() 
     134         
    95135    @classmethod 
    96136    def fromConfig(cls, cfg, **kw): 
     
    105145         
    106146        # Post initialisation steps - load policy and PIP mapping file 
    107         if obj.policyFilePath: 
    108             obj.pdp = PDP.fromPolicySource(obj.policyFilePath,  
    109                                            XacmlPolicyReaderFactory) 
    110          
    111         if obj.pip.mappingFilePath: 
    112             obj.pip.readMappingFile() 
    113              
     147        obj.load() 
     148            
    114149        return obj 
    115150 
     
    159194         
    160195        def _setAttr(__optName): 
    161             # Check for PIP attribute related items 
     196            """Convenience function to check for PIP attribute related items 
     197            """ 
    162198            if __optName.startswith(pipPrefix): 
    163199                if self.pip is None:     
     
    211247         
    212248        # Post initialisation steps - load policy and PIP mapping file 
    213         if obj.policyFilePath: 
    214             obj.pdp = PDP.fromPolicySource(obj.policyFilePath,  
    215                                            XacmlPolicyReaderFactory) 
    216          
    217         if obj.pip.mappingFilePath: 
    218             obj.pip.readMappingFile() 
     249        obj.load() 
    219250                        
    220251        return obj 
     
    492523 
    493524        return response 
     525 
Note: See TracChangeset for help on using the changeset viewer.