Changeset 3768 for TI12-security


Ignore:
Timestamp:
04/04/08 16:19:01 (12 years ago)
Author:
pjkersha
Message:

wsSecurity.SignatureHandler? - extra options for passing config.

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

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/wsSecurity.py

    r3755 r3768  
    162162 
    163163    #_________________________________________________________________________ 
    164     def __init__(self, cfgFilePath=None, configClass=WSSecurityConfig, **kw): 
     164    def __init__(self, cfgFilePath=None, cfgFileSection='DEFAULT', 
     165                 cfgClass=WSSecurityConfig, **kw): 
    165166        ''' 
    166167        @reqBinSecTokValType: set the ValueType for the BinarySecurityToken 
     
    244245        # WSSecurityConfig is the default class for reading config params but 
    245246        # alternative derivative class may be passed in instead. 
    246         if not issubclass(configClass, WSSecurityConfig): 
     247        if not issubclass(cfgClass, WSSecurityConfig): 
    247248            raise TypeError("%s is not a sub-class of WSSecurityConfig" % \ 
    248                             configClass) 
    249         self.cfg = configClass() 
     249                            cfgClass) 
     250        self.cfg = cfgClass() 
    250251         
    251252        # Read parameters from config file if set 
    252253        if cfgFilePath: 
    253             self.cfg.read(cfgFilePath) 
     254            self.cfg.read(cfgFilePath, section=cfgFileSection) 
    254255         
    255256        # Also update config from keywords set  
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/wssecurity/__init__.py

    r3722 r3768  
    4444             signedInfoC14nInclNS=[]) 
    4545     
    46     def __init__(self): 
     46    def __init__(self, cfg=SafeConfigParser()): 
    4747        dict.__init__(self) 
    48         self._cfg = SafeConfigParser() 
     48        self._cfg = cfg 
    4949         
    5050        # Initialise parameters from ref in class var 
     
    5252         
    5353 
    54     def read(self, *arg): 
     54    def read(self, *arg, **kw): 
    5555        '''Read ConfigParser object but also set _param dict''' 
    5656        self._cfg.read(*arg) 
    5757         
     58        # This enables WS-Security params to be set in a config file with 
     59        # other sections e.g. params could be under the section 'wssecurity' 
     60        if 'section' in kw: 
     61            section = kw['section'] 
     62        else: 
     63            section = 'DEFAULT' 
     64              
    5865        for paramName in self._param: 
    5966            # Options may be omitted and set later 
    60             if self._cfg.has_option('DEFAULT', paramName): 
     67            if self._cfg.has_option(section, paramName): 
    6168                # Switch based defParam type - TODO: refC14nKw and  
    6269                # signedInfoC14nKw - maybe these should be removed as they're 
     
    6572                    try: 
    6673                        self._param[paramName] = \ 
    67                             exVar(self._cfg.get('DEFAULT', paramName)).split() 
     74                            exVar(self._cfg.get(section, paramName)).split() 
    6875                    except AttributeError: 
    6976                        raise SecurityConfigError('Setting "%s"' % paramName) 
    7077                     
    7178                elif isinstance(WSSecurityConfig.defParam[paramName], bool):            
    72                     self._param[paramName] = self._cfg.getboolean('DEFAULT',  
     79                    self._param[paramName] = self._cfg.getboolean(section,  
    7380                                                                  paramName) 
    7481                else: 
     
    7683                    # of '' causes problems for M2Crypto parsing 
    7784                    self._param[paramName] = \ 
    78                         exVar(self._cfg.get('DEFAULT', paramName)) or None 
     85                        exVar(self._cfg.get(section, paramName)) or None 
    7986 
    8087    def __len__(self): 
Note: See TracChangeset for help on using the changeset viewer.