Changeset 4067


Ignore:
Timestamp:
25/07/08 13:40:05 (11 years ago)
Author:
pjkersha
Message:

Fixes to ndg.security.common.authz.pdp.proftp - Pro-FTP based Polciy Decision Point. Tested on zonda.

Location:
TI12-security/trunk/python/ndg.security.common/ndg/security/common/authz/pdp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/authz/pdp/browse.py

    r4059 r4067  
    454454        acIssuerDN = X500DN(self.acIssuer) 
    455455        if attCert.issuerDN != acIssuerDN: 
    456             log.info('access denied: Attribute Certificate ' + \ 
     456            log.error('access denied: Attribute Certificate ' + \ 
    457457                'issuer DN, "%s" ' % attCert.issuerDN + \ 
    458458                'must match this data provider\'s Attribute Authority ' + \ 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/authz/pdp/proftp.py

    r4059 r4067  
    7272    defParam = {'aaURI': '', 
    7373                'sslCACertFilePathList': [], 
    74                 'tracefile': '', 
     74                'tracefile': None, 
    7575                'acCACertFilePathList': [],  
    76                 'acIssuer': '', 
    7776                'wssCfgFilePath': None, 
    78                 'wssCfgSection': 'DEFAULT'} 
     77                'wssCfgSection': 'DEFAULT', 
     78                'acIssuer': ''} 
    7979        
    8080    def __init__(self, cfg=None, cfgSection='DEFAULT', **cfgKw): 
     
    104104        if cfg: 
    105105            self._parseConfig(cfgSection) 
    106                          
     106 
    107107        # Separate keywords into PDP and WS-Security specific items 
    108108        paramNames = cfgKw.keys() 
     
    124124        '''Extract parameters from _cfg config object''' 
    125125        log.debug("ProftpPDP._parseConfig ...") 
    126          
     126 
    127127        # Copy directly into attribute of this object 
    128128        for paramName, paramVal in ProftpPDP.defParam.items(): 
    129             if isinstance(paramVal, list): 
    130                 paramListVal = expVars(cfg.get(section, paramName)).split() 
    131                 setattr(self, paramName, paramListVal) 
     129            if not self._cfg.has_option(section, paramName):  
     130                # Set default if parameter is missing 
     131                log.debug("Setting default %s = %s" % (paramName, paramVal)) 
     132                setattr(self, paramName, paramVal) 
     133                continue 
     134              
     135            if paramName.lower() == 'tracefile': 
     136                val = self._cfg.get(section, paramName) 
     137                if val: 
     138                    setattr(self, paramName, eval(val)) 
     139                else: 
     140                    setattr(self, paramName, None) 
     141                        
     142            elif isinstance(paramVal, list): 
     143                listVal = expVars(self._cfg.get(section, paramName)).split() 
     144                setattr(self, paramName, listVal) 
    132145            else: 
    133                 setattr(self, paramName, expVars(cfg.get(section, paramName)))             
     146                val = expVars(self._cfg.get(section, paramName)) 
     147                setattr(self, paramName, val)   
    134148 
    135149 
     
    214228        for allowedGroup in allowedGroups: 
    215229             if allowedGroup in userRoles: 
    216                  log.info(\ 
    217             'ProftpPDP: User role "%s" is in .ftpaccess allowed groups: %s' % \ 
    218                      (allowedGroup, ', '.join(allowedGroups))) 
     230                 log.info('ProftpPDP: User role "%s" is in .ftpaccess allowed ' 
     231                          'groups: %s'%(allowedGroup,', '.join(allowedGroups))) 
    219232                 return 
    220233                  
     
    236249 
    237250            if userHasAllGroups: 
    238                 log.info(\ 
    239             'ProftpPDP: User has all the required .ftpaccess groups: %s' % \ 
    240                      ', '.join(requiredGroups)) 
     251                log.info('ProftpPDP: User has all the required .ftpaccess ' 
     252                         'groups: %s' % ', '.join(requiredGroups)) 
    241253                return 
    242254          
     
    254266             
    255267        if username in allowedUsers: 
    256             log.info(\ 
    257                  'ProftpPDP: user ID "%s" is in list of allowed users: "%s"' %\ 
    258                  (username, '", "'.join(allowedUsers))) 
     268            log.info('ProftpPDP: user ID "%s" is in list of allowed users: ' 
     269                     '"%s"' % (username, '", "'.join(allowedUsers))) 
    259270            return 
    260271         
    261272         
    262273        # Catch all - default to deny access 
    263         log.info(\ 
    264             'Access denied to resource %s for user "%s" with roles "%s"' % \ 
    265             (resrcHandle, attCert.userId, '", "'.join(userRoles))) 
     274        log.info('Access denied to resource %s for user "%s" with roles "%s"'%\ 
     275                 (resrcHandle, attCert.userId, '", "'.join(userRoles))) 
    266276        raise PDPUserInsufficientPrivileges() 
    267277     
     
    270280        """Check to see if the Session Manager can deliver an Attribute  
    271281        Certificate with the required role to gain access to the resource 
    272         in question 
    273          
     282        in question         
    274283        """ 
    275284         
     
    278287            # Create Session Manager client 
    279288            self.smClnt = SessionMgrClient(uri=self.smURI, 
    280                             cfgFilePath=self.cfgFilePath, 
    281                             cfgFileSection=self.wssCfgFilePath, 
    282                              
    283289                            sslCACertFilePathList=self.sslCACertFilePathList, 
    284                             tracefile=self.tracefile)  
     290                            tracefile=self.tracefile,  
     291                            cfg=self.wssCfgFilePath or self._cfg, 
     292                            cfgFileSection=self.wssCfgSection, 
     293                            **self.wssCfg) 
    285294        except Exception, e: 
    286295            log.error("ProftpPDP: creating Session Manager client: %s" % e) 
     
    295304         
    296305        except AttributeRequestDenied, e: 
    297             log.info(\ 
    298             "ProftpPDP - request for attribute certificate denied: %s" % e) 
     306            log.info("ProftpPDP - request for attribute certificate denied: " 
     307                     "%s" % e) 
    299308            raise PDPUserAccessDenied() 
    300309         
     
    340349        acIssuerDN = X500DN(self.acIssuer) 
    341350        if attCert.issuerDN != acIssuerDN: 
    342             log.info('ProftpPDP -access denied: Attribute Certificate ' + \ 
    343                 'issuer DN, "%s" ' % attCert.issuerDN + \ 
    344                 'must match this data provider\'s Attribute Authority ' + \ 
    345                 'DN: "%s"' % acIssuerDN) 
     351            log.error('ProftpPDP - access denied: Attribute Certificate issuer' 
     352                      ' DN, "%s" ' % attCert.issuerDN + \ 
     353                      'must match this data provider\'s Attribute Authority ' 
     354                      'DN: "%s"' % acIssuerDN) 
    346355            raise InvalidAttributeCertificate() 
    347356 
Note: See TracChangeset for help on using the changeset viewer.