Ignore:
Timestamp:
04/03/09 11:31:37 (11 years ago)
Author:
pjkersha
Message:

Tested 4Suite based WS-Security SignatureHandler? with Java client Attribute Authority Unit tests. 4Suite version is now integrated as the default Singautre Handler for ndg.security.server.wsgi.wssecurity

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

Legend:

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

    r4863 r5060  
    1919        Exception.__init__(self, msg) 
    2020 
     21def importClass(moduleName, className=None): 
     22    '''Import a class from a string module name and class name. 
     23     
     24    @param moduleName: Name of module containing the class 
     25    @type moduleName: str  
     26    @param className: Name of the class to import.  If none is given, the  
     27    class name will be assumed to be the last component of modulePath 
     28    @type className: str 
     29    @rtype: class object 
     30    @return: imported class''' 
     31     
     32    if className is None: 
     33        _moduleName, className = moduleName.rsplit(moduleName, 1) 
     34    else: 
     35        _moduleName = moduleName 
     36            
     37    module = __import__(_moduleName) 
     38    components = _moduleName.split('.') 
     39    for component in components[1:]: 
     40        module = getattr(module, component) 
     41 
     42    importedClass = getattr(module, className) 
     43    return importedClass 
     44     
    2145 
    2246def instantiateClass(moduleName, className, moduleFilePath=None,  
     
    7094                module = getattr(module, component) 
    7195 
    72             importedClass = getattr(module, className) 
     96            importedClass = importClass(moduleName, className=className) 
    7397        finally: 
    7498            # revert back to original sys path, if necessary 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/wssecurity/foursuite.py

    r5057 r5060  
    7575         
    7676        # Add ID so that the element can be included in the signature 
    77         sigConfirmElem.node.setAttribute('wsu:Id', "signatureConfirmation") 
    78  
     77        sigConfirmElem.setAttributeNS(_WSU.UTILITY,  
     78                                      'Id',  
     79                                      'signatureConfirmation') 
     80         
    7981        # Add ID so that the element can be included in the signature 
    8082        # Following line is a hck to avoid appearance of #x when serialising \n 
    8183        # chars TODO: why is this happening?? 
    8284        b64EncSignatureValue = ''.join(self.b64EncSignatureValue.split('\n')) 
    83         sigConfirmElem.node.setAttribute('Value', b64EncSignatureValue) 
    84          
     85        sigConfirmElem.setAttributeNS(None, 'Value', b64EncSignatureValue) 
    8586         
    8687    def _addTimeStamp(self, wsseElem, elapsedSec=60*5): 
     
    300301                                                    'InclusiveNamespaces') 
    301302            inclNsPfx = ' '.join(self.signedInfoC14nKw['inclusive_namespaces']) 
    302             c14nInclNamespacesElem.setAttributeNS(None, 'PrefixList', inclNsPfx) 
     303            c14nInclNamespacesElem.setAttributeNS(None,'PrefixList',inclNsPfx) 
    303304         
    304305        # Signed Info - Signature method 
     
    529530                    # Check for no inclusive namespaces set 
    530531                    inclusiveNS = getElements(transformElems[0],  
    531                                               "InclusiveNamespaces")[0]                     
    532                     if inclusiveNS: 
    533                         pfxListAttElem = inclusiveNS.getAttributeNodeNS(None,  
     532                                              "InclusiveNamespaces")                    
     533                    if len(inclusiveNS) > 0: 
     534                        pfxListAttElem=inclusiveNS[0].getAttributeNodeNS(None,  
    534535                                                                'PrefixList') 
    535536                             
     
    584585                # Check for inclusive namespaces 
    585586                inclusiveNsElem = getElements(c14nMethodElem, 
    586                                               "InclusiveNamespaces")[0] 
    587                 if inclusiveNsElem:                     
    588                     pfxListAttElem = inclusiveNsElem.getAttributeNodeNS(None, 
     587                                              "InclusiveNamespaces") 
     588                if len(inclusiveNsElem) > 0:                     
     589                    pfxListAttElem=inclusiveNsElem[0].getAttributeNodeNS(None, 
    589590                                                                 'PrefixList') 
    590591                    signedInfoC14nKw['inclusivePrefixes'] = \ 
Note: See TracChangeset for help on using the changeset viewer.