Ignore:
Timestamp:
30/06/09 17:05:27 (11 years ago)
Author:
pjkersha
Message:

Fixes for integration testing with OAI editor:

  • Attribute Authority and Session Manager clients now use Domlette element proxy classes for XML parsing and 4Suite based signature handler
  • ndg.security.server.wsgi.authz.PIPMiddleware: parse list items correctly
  • ndg.security.server.wsgi.authn.SessionHandlerMiddleware?: allow OpenID AX params for Session ID and Session Manager to default to None to allow for OpenID Providers which cannot support passing of these attributes.
Location:
TI12-security/trunk/python/ndg.security.common/ndg/security/common
Files:
3 edited

Legend:

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

    r5182 r5436  
    834834 
    835835        
    836     #_________________________________________________________________________     
    837836    def setValidityTime(self, 
    838837                        dtNotBefore=None,  
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/attributeauthority.py

    r5063 r5436  
    2929from ndg.security.common.zsi.attributeauthority.AttributeAuthority_services \ 
    3030    import AttributeAuthorityServiceLocator 
    31 from ndg.security.common.wssecurity.signaturehandler.dom import SignatureHandler 
     31from ndg.security.common.wssecurity.signaturehandler.foursuite import \ 
     32    SignatureHandler 
     33from ndg.security.common.wssecurity.utils import DomletteReader, \ 
     34    DomletteElementProxy 
    3235from ndg.security.common.AttCert import AttCert, AttCertParse 
    3336from ndg.security.common.m2CryptoSSLUtility import HTTPSConnection, HostCheck 
     
    6063    excepMap = { 
    6164        'AttributeAuthorityNoTrustedHosts': NoTrustedHosts, 
    62         'AttributeAuthorityNoMatchingRoleInTrustedHosts':NoMatchingRoleInTrustedHosts 
    63         } 
     65        'AttributeAuthorityNoMatchingRoleInTrustedHosts': 
     66            NoMatchingRoleInTrustedHosts 
     67    } 
    6468     
    6569    def __init__(self,  
     
    236240 
    237241    sslCACertFilePathList = property(fset=__setSSLCACertFilePathList,  
    238 doc="for https connections, set list of CA cert files from which to verify peer cert") 
     242                                     doc="for https connections, set list of " 
     243                                         "CA certificate files from which to " 
     244                                         "verify peer certificate") 
    239245 
    240246    def __setSignatureHandler(self, signatureHandler): 
    241247        """Set SignatureHandler object property method - set to None to for no 
    242248        digital signature and verification""" 
    243         if signatureHandler is not None and \ 
    244            not isinstance(signatureHandler, signatureHandler): 
     249        if not isinstance(signatureHandler, (signatureHandler,None.__class__)): 
    245250            raise AttributeError("Signature Handler must be %s type or None " 
    246                                  "for no message security" %  
    247                         "ndg.security.common.wssecurity.signaturehandler.dom.SignatureHandler") 
     251                                 "for no message security" % SignatureHandler) 
    248252                             
    249253        self.__signatureHandler = signatureHandler 
     
    271275            self.__srv = locator.getAttributeAuthority(self.__uri,  
    272276                                         sig_handler=self.__signatureHandler, 
     277                                         readerclass=DomletteReader,  
     278                                         writerclass=DomletteElementProxy, 
    273279                                         tracefile=self.__tracefile, 
    274280                                         transport=self._transport, 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/sessionmanager.py

    r5433 r5436  
    1515log = logging.getLogger(__name__) 
    1616 
    17 import sys 
    18 import os 
    19  
    20 # Determine https http transport 
     17# Determine https/http transport 
    2118import urlparse 
    2219 
    2320from ZSI.wstools.Utility import HTTPResponse 
    2421 
    25 from ndg.security.common.wssecurity.signaturehandler.dom import SignatureHandler 
    26 from ndg.security.common.X509 import * 
     22from ndg.security.common.wssecurity.signaturehandler.foursuite import \ 
     23    SignatureHandler 
     24     
     25from ndg.security.common.wssecurity.utils import DomletteReader, \ 
     26    DomletteElementProxy 
     27     
    2728from ndg.security.common.AttCert import AttCert, AttCertParse 
    2829from ndg.security.common.m2CryptoSSLUtility import HTTPSConnection, \ 
     
    3132from ndg.security.common.zsi.sessionmanager.SessionManager_services import \ 
    3233                                                SessionManagerServiceLocator 
    33  
    3434 
    3535class SessionManagerClientError(Exception): 
     
    303303                                     "cert") 
    304304 
    305  
    306305    def __setSignatureHandler(self, signatureHandler): 
    307306        """Set SignatureHandler object property method - set to None to for no 
    308307        digital signature and verification""" 
    309         if signatureHandler is not None and \ 
    310            not isinstance(signatureHandler, SignatureHandler): 
     308        if not isinstance(signatureHandler, (SignatureHandler,None.__class__)): 
    311309            raise AttributeError("Signature Handler must be %s type or None " 
    312                                  "for no message security" % 
    313                         "ndg.security.common.wssecurity.signaturehandler.dom.SignatureHandler") 
     310                                 "for no message security" % SignatureHandler) 
    314311                             
    315312        self.__signatureHandler = signatureHandler 
     
    333330            self.__srv = locator.getSessionManager(self.__uri, 
    334331                                         sig_handler=self.__signatureHandler, 
     332                                         readerclass=DomletteReader,  
     333                                         writerclass=DomletteElementProxy, 
    335334                                         tracefile=self.__tracefile, 
    336335                                         transport=self._transport, 
    337336                                         transdict=self._transdict) 
    338337        except HTTPResponse, e: 
    339             raise SessionManagerClientError, \ 
    340                 "Initialising Service for \"%s\": %s %s" % \ 
    341                 (self.__uri, e.status, e.reason) 
     338            raise SessionManagerClientError( 
     339                "Initialising Service for \"%s\": %s %s" % 
     340                (self.__uri, e.status, e.reason)) 
    342341     
    343342    def connect(self, 
     
    516515        try: 
    517516            attCert, msg, extAttCertList = self.__srv.getAttCert(userX509Cert, 
    518                                                            sessID,  
    519                                                            attributeAuthorityURI, 
    520                                                            reqRole, 
    521                                                            mapFromTrustedHosts, 
    522                                                            rtnExtAttCertList, 
    523                                                            extAttCertList, 
    524                                                            extTrustedHostList) 
     517                                                       sessID,  
     518                                                       attributeAuthorityURI, 
     519                                                       reqRole, 
     520                                                       mapFromTrustedHosts, 
     521                                                       rtnExtAttCertList, 
     522                                                       extAttCertList, 
     523                                                       extTrustedHostList) 
    525524        except Exception, e: 
    526525            # Try to detect exception type from SOAP fault message 
Note: See TracChangeset for help on using the changeset viewer.