Changeset 848


Ignore:
Timestamp:
27/04/06 16:57:58 (13 years ago)
Author:
pjkersha
Message:

Testing AttAuthorityClient? from SecurityClient?.py. Applied fixes to AttAuthority?
getTrustedHostInfo to ensure unique roles are returned.

Location:
TI12-security/trunk/python
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/NDG/AttAuthority.py

    r751 r848  
    109109        # Initialise role mapping look-ups - These are set in readMapConfig() 
    110110        self.__mapConfig = None 
    111         self.__localRole2Trusted = None 
    112         self.__trusted2LocalRole = None 
     111        self.__localRole2RemoteRole = None 
     112        self.__remoteRole2LocalRole = None 
    113113 
    114114 
     
    452452 
    453453            # Map external roles to local ones 
    454             localRoles = self.mapTrusted2LocalRoles(extAttCert['issuerName'], 
     454            localRoles = self.mapRemoteRoles2LocalRoles(\ 
     455                                                    extAttCert['issuerName'], 
    455456                                                    trustedHostRoles) 
    456457            if not localRoles: 
     
    586587        # 3) roles of external data centre to this data centre 
    587588        self.__localRole2TrustedHost = {} 
    588         self.__localRole2Trusted = {} 
    589         self.__trusted2LocalRole = {} 
     589        self.__localRole2RemoteRole = {} 
     590        self.__remoteRole2LocalRole = {} 
    590591         
    591592        for elem in trustedElem: 
     
    608609            { 
    609610                'wsdl': elem.findtext('wsdl'), 
    610                 'pubKey': elem.findtext('pubKey'), 
    611611                'role': [dict(i.items()) for i in roleElem] 
    612612            } 
    613613 
    614614                     
    615             self.__localRole2Trusted[trustedHost] = {} 
    616             self.__trusted2LocalRole[trustedHost] = {} 
     615            self.__localRole2RemoteRole[trustedHost] = {} 
     616            self.__remoteRole2LocalRole[trustedHost] = {} 
    617617             
    618618            for role in self.__mapConfig[trustedHost]['role']: 
     
    635635                # map look-ups 
    636636                try: 
    637                     self.__trusted2LocalRole[trustedHost][remoteRole].append(\ 
     637                    self.__remoteRole2LocalRole[trustedHost][remoteRole].append(\ 
    638638                                                                localRole)                   
    639639                except KeyError: 
    640                     self.__trusted2LocalRole[trustedHost][remoteRole] = \ 
     640                    self.__remoteRole2LocalRole[trustedHost][remoteRole] = \ 
    641641                                                                [localRole] 
    642642                     
    643643                try: 
    644                     self.__localRole2Trusted[trustedHost][localRole].append(\ 
    645                                                                 remoteRole)                   
     644                    self.__localRole2RemoteRole[trustedHost][localRole].\ 
     645                                                            append(remoteRole)                   
    646646                except KeyError: 
    647                     self.__localRole2Trusted[trustedHost][localRole] = \ 
     647                    self.__localRole2RemoteRole[trustedHost][localRole] = \ 
    648648                                                                [remoteRole]                   
    649649  
     
    675675 
    676676     
    677     def getTrustedHostInfo(self, **reqKeys): 
     677    def getTrustedHostInfo(self, role=None): 
    678678        """Return a dictionary of the hosts that have trust relationships 
    679679        with this AA.  The dictionary is indexed by the trusted host name 
     
    686686        Returns None if role isn't recognised""" 
    687687                                          
    688         if not self.__localRole2Trusted: 
     688        if not self.__localRole2RemoteRole: 
    689689            raise AttAuthorityError("Roles to host look-up is not set - " + \ 
    690690                                    "ensure readMapConfig() has been called.") 
    691691 
    692692 
    693         if 'role' not in reqKeys: 
     693        if role is None: 
    694694            # No role input - return all trusted hosts with their WSDL URIs 
    695             # and roles 
    696             trustedHostInfo = dict([\ 
    697                (k, \ 
    698                 {'wsdl': v['wsdl'], \ 
    699                  'pubKey': v['pubKey'], \ 
    700                  'role': [role['remote'] for role in v['role']]}) \ 
    701                 for k, v in self.__mapConfig.items()]) 
     695            # and the remote roles they map to 
     696            # 
     697            # Nb. {}.fromkeys([...]).keys() is a fudge to get unique elements 
     698            # from a list i.e. convert the list elements to a dict eliminating 
     699            # duplicated elements and convert the keys bacl into a list. 
     700            trustedHostInfo = dict(\ 
     701            [\ 
     702                (\ 
     703                    k, \ 
     704                    { 
     705                        'wsdl': v['wsdl'], \ 
     706                        'role': \ 
     707                        {}.fromkeys(\ 
     708                            [\ 
     709                                role['remote'] for role in v['role'] 
     710                            ]\ 
     711                        ).keys() 
     712                    } 
     713                ) for k, v in self.__mapConfig.items() 
     714            ]) 
     715 
    702716        else:            
    703717            # Get trusted hosts for given input local role         
    704718            try: 
    705                 trustedHosts = self.__localRole2TrustedHost[reqKeys['role']] 
     719                trustedHosts = self.__localRole2TrustedHost[role] 
    706720            except: 
    707721                return None 
     
    710724            # Get associated WSDL URI and roles for the trusted hosts  
    711725            # identified and return as a dictionary indexed by host name 
    712             trustedHostInfo = dict([(host, \ 
    713                 {'wsdl': self.__mapConfig[host]['wsdl'], \ 
    714                  'pubKey': self.__mapConfig[host]['pubKey'], \ 
    715                  'role': self.__localRole2Trusted[host][reqKeys['role']]}) \ 
    716                  for host in trustedHosts]) 
     726            trustedHostInfo = dict(\ 
     727            [\ 
     728                (\ 
     729                    host, \ 
     730                    { 
     731                        'wsdl': self.__mapConfig[host]['wsdl'], 
     732                        'role': self.__localRole2RemoteRole[host][role] 
     733                    }\ 
     734                 ) for host in trustedHosts 
     735            ]) 
    717736                          
    718737        return trustedHostInfo 
     
    721740 
    722741 
    723     def mapTrusted2LocalRoles(self, trustedHost, trustedHostRoles): 
     742    def mapRemoteRoles2LocalRoles(self, trustedHost, trustedHostRoles): 
    724743        """Map roles of trusted hosts to roles for this data centre 
    725744 
     
    727746        trustedHostRoles:   list of external roles to map""" 
    728747 
    729         if not self.__trusted2LocalRole: 
     748        if not self.__remoteRole2LocalRole: 
    730749            raise AttAuthorityError("Roles map is not set - ensure " + \ 
    731750                                    "readMapConfig() has been called.") 
     
    734753        # Check the host name is a trusted one recorded in the map 
    735754        # configuration 
    736         if not self.__trusted2LocalRole.has_key(trustedHost): 
     755        if not self.__remoteRole2LocalRole.has_key(trustedHost): 
    737756            return [] 
    738757 
     
    740759        localRoles = [] 
    741760        for trustedRole in trustedHostRoles: 
    742             if trustedRole in self.__trusted2LocalRole[trustedHost]: 
     761            if trustedRole in self.__remoteRole2LocalRole[trustedHost]: 
    743762                localRoles.extend(\ 
    744                         self.__trusted2LocalRole[trustedHost][trustedRole]) 
     763                        self.__remoteRole2LocalRole[trustedHost][trustedRole]) 
    745764                 
    746765        return localRoles 
     
    815834        raise NotImplementedError( 
    816835            self.getRoles.__doc__.replace('\n       ','')) 
    817  
    818  
    819 #_____________________________________________________________________________ 
    820 # Test routines 
    821 def testGetTrustedHostInfo(role=None, 
    822                            propFilePath='./attAuthorityProperties.xml'): 
    823     "Test getTrustedHosts AttAuthority method" 
    824     import pdb 
    825     pdb.set_trace() 
    826      
    827     try: 
    828         aa = AttAuthority(propFilePath) 
    829         return aa.getTrustedHostInfo(role) 
    830      
    831     except Exception, e: 
    832         print e 
     836                          
  • TI12-security/trunk/python/NDG/SecurityClient.py

    r844 r848  
    11#!/usr/bin/env python 
    22 
    3 """NDG Session client - makes requests for authentication and authorisation 
     3"""NDG Security client - client interface classes to Session Manager and  
     4Attribute Authority Web Services.   
     5 
     6Make requests for authentication and authorisation 
    47 
    58NERC Data Grid Project 
    69 
    7 P J Kershaw 16/08/05 
    8  
    9 Copyright (C) 2005 CCLRC & NERC 
     10P J Kershaw 24/04/06 
     11 
     12Copyright (C) 2006 CCLRC & NERC 
    1013 
    1114This software may be distributed under the terms of the Q Public License, 
    1215version 1.0 or later. 
    1316""" 
    14  
    15 cvsID = '$Id$' 
    1617 
    1718from ZSI import ServiceProxy 
     
    2021from Cookie import SimpleCookie 
    2122 
    22 from X509 import * 
    23 from SessionMgrIO import * 
    24  
    25 # Handle retrieval of public key cert for Session Manager at remote location 
     23# Handle retrieval of public key cert for Session Manager/Attribute Authority 
     24# at remote location 
    2625import tempfile 
    2726import urllib 
     27 
     28from NDG.X509 import * 
     29import NDG.SessionMgrIO as smIO 
     30import NDG.AttAuthorityIO as aaIO 
     31 
    2832 
    2933#_____________________________________________________________________________ 
     
    237241        # Make request for new user 
    238242        try:    
    239             addUserReq = AddUserReq(userName=userName,  
     243            addUserReq = smIO.AddUserReq(userName=userName,  
    240244                                pPhrase=pPhrase, 
    241245                                encrCert=self.__clntPubKey, 
     
    245249            resp = self.__smSrv.addUser(addUserReq=addUserReq()) 
    246250                         
    247             addUserResp = AddUserResp(xmlTxt=resp['addUserResp'], 
     251            addUserResp = smIO.AddUserResp(xmlTxt=resp['addUserResp'], 
    248252                                encrPriKeyFilePath=self.__clntPriKeyFilePath, 
    249253                                encrPriKeyPwd=clntPriKeyPwd)             
     
    303307        # Make connection 
    304308        try:  
    305             connectReq = ConnectReq(userName=userName,  
     309            connectReq = smIO.ConnectReq(userName=userName,  
    306310                                pPhrase=pPhrase, 
    307311                                getCookie=getCookie, 
     
    313317            resp = self.__smSrv.connect(connectReq=connectReq()) 
    314318             
    315             connectResp = ConnectResp(xmlTxt=resp['connectResp'], 
     319            connectResp = smIO.ConnectResp(xmlTxt=resp['connectResp'], 
    316320                                encrPriKeyFilePath=self.__clntPriKeyFilePath, 
    317321                                encrPriKeyPwd=clntPriKeyPwd) 
     
    409413        # Make authorisation request 
    410414        try: 
    411             authReq = AuthorisationReq(aaWSDL=aaWSDL, 
     415            authReq = smIO.AuthorisationReq(aaWSDL=aaWSDL, 
    412416                                 aaPubKey=aaPubKey, 
    413417                                 sessID=sessID,  
     
    423427                                             
    424428            resp = self.__smSrv.reqAuthorisation(authorisationReq=authReq()) 
    425             authResp = AuthorisationResp(xmlTxt=resp['authorisationResp'], 
     429            authResp = smIO.AuthorisationResp(xmlTxt=resp['authorisationResp'], 
    426430                                encrPriKeyFilePath=self.__clntPriKeyFilePath, 
    427431                                encrPriKeyPwd=clntPriKeyPwd) 
     
    438442         
    439443        try:    
    440             pubKeyReq = PubKeyReq()  
     444            pubKeyReq = smIO.PubKeyReq()  
    441445 
    442446            # Pass request 
    443447            resp = self.__smSrv.getPubKey(pubKeyReq=pubKeyReq()) 
    444448                         
    445             pubKeyResp = PubKeyResp(xmlTxt=resp['pubKeyResp']) 
     449            pubKeyResp = smIO.PubKeyResp(xmlTxt=resp['pubKeyResp']) 
    446450                             
    447451            if 'errMsg' in pubKeyResp and pubKeyResp['errMsg']: 
     
    451455         
    452456        except Exception, e: 
    453             raise SessionClientError("Error retrieving public key: " + str(e))                                 
     457            raise SessionClientError("Error retrieving public key: " + str(e)) 
     458 
     459 
     460 
     461 
     462#_____________________________________________________________________________ 
     463class AttAuthorityClientError(Exception): 
     464    """Exception handling for SessionClient class""" 
     465    def __init__(self, msg): 
     466        self.__msg = msg 
     467          
     468    def __str__(self): 
     469        return self.__msg 
     470 
     471 
     472#_____________________________________________________________________________ 
     473class AttAuthorityClient(object): 
     474     
     475    #_________________________________________________________________________ 
     476    def __init__(self,  
     477                 aaWSDL=None,  
     478                 aaPubKeyFilePath=None, 
     479                 clntPubKeyFilePath=None, 
     480                 clntPriKeyFilePath=None, 
     481                 traceFile=None): 
     482        """ 
     483        aaWSDL:                  WSDL URI for Attribute Authority WS.  Setting  
     484                                 it will set the Service Proxy 
     485        aaPubKeyFilePath:     
     486                                 Public key of Attribute Authority used to  
     487                                 encrypt the outgoing message if required -  
     488                                 set as a path on the local file system or as  
     489                                 a URI 
     490        clntPubKeyFilePath:      Public key of client.  This is passed to the 
     491                                 Attribute Authority so that it can encrypt 
     492                                 responses.  WARNING: if not set, responses 
     493                                 are returned as clear text 
     494        clntPriKeyFilePath:      Private key of client.  If clntPubKeyFilePath 
     495                                 is set, the private key is needed to decrypt  
     496                                 the response from the Attribute Authority 
     497        traceFile:               set to file object such as sys.stderr to  
     498                                 give extra WS debug information""" 
     499 
     500        self.__aaSrv = None 
     501        self.__aaWSDL = None 
     502        self.__aaPubKeyFilePath = None 
     503        self.__aaPubKeyFilePath = None 
     504        self.__clntPubKeyFilePath = None 
     505        self.__clntPubKey = None 
     506        self.__clntPriKeyFilePath = None 
     507         
     508        self.__aaPubKeyTempFile = None 
     509         
     510         
     511        if aaWSDL: 
     512            self.__setAAwsdl(aaWSDL) 
     513             
     514        if aaPubKeyFilePath: 
     515            self.__setAApubKeyFilePath(aaPubKeyFilePath) 
     516             
     517        if clntPriKeyFilePath: 
     518            self.__setClntPriKeyFilePath(clntPriKeyFilePath) 
     519             
     520        if clntPubKeyFilePath: 
     521            if clntPriKeyFilePath is None: 
     522                raise AttAuthorityClientError(\ 
     523                    "A Client private key file is required as well a " + \ 
     524                    "public key") 
     525                     
     526            self.__setClntPubKeyFilePath(clntPubKeyFilePath) 
     527 
     528            
     529        self.__traceFile = traceFile 
     530 
     531          
     532        # Instantiate Attribute Authority WS proxy 
     533        if self.__aaWSDL: 
     534            self.serviceProxy() 
     535         
     536 
     537    #_________________________________________________________________________ 
     538    def __setAAwsdl(self, aaWSDL): 
     539         
     540        if not isinstance(aaWSDL, basestring): 
     541            raise AttAuthorityClientError(\ 
     542                        "Attribute Authority WSDL URI must be a valid string") 
     543         
     544        self.__aaWSDL = aaWSDL 
     545         
     546    aaWSDL = property(fset=__setAAwsdl,doc="Set Attribute Authority WSDL URI") 
     547 
     548 
     549    #_________________________________________________________________________ 
     550    def __setAApubKeyFilePath(self, aaPubKeyFilePath): 
     551         
     552        if not isinstance(aaPubKeyFilePath, basestring): 
     553            raise AttAuthorityClientError(\ 
     554                "Attribute Authority public key URI must be a valid string") 
     555         
     556        self.__aaPubKeyFilePath = aaPubKeyFilePath 
     557         
     558    aaPubKeyFilePath = property(fset=__setAApubKeyFilePath, 
     559                           doc="Set Attribute Authority public key URI") 
     560 
     561  
     562    #_________________________________________________________________________ 
     563    def __setClntPubKeyFilePath(self, clntPubKeyFilePath): 
     564         
     565        if not isinstance(clntPubKeyFilePath, basestring): 
     566            raise AttAuthorityClientError(\ 
     567                "Client public key file path must be a valid string") 
     568         
     569        self.__clntPubKeyFilePath = clntPubKeyFilePath 
     570        try: 
     571            self.__clntPubKey = open(self.__clntPubKeyFilePath).read() 
     572             
     573        except IOError, (errNo, errMsg): 
     574            raise AttAuthorityClientError(\ 
     575                    "Reading certificate file \"%s\": %s" % \ 
     576                    (self.__clntPubKeyFilePath, errMsg)) 
     577                                
     578        except Exception, e: 
     579            raise AttAuthorityClientError(\ 
     580                    "Reading certificate file \"%s\": %s" % \ 
     581                    (self.__clntPubKeyFilePath, str(e))) 
     582         
     583    clntPubKeyFilePath = property(fset=__setClntPubKeyFilePath, 
     584                                  doc="File path for client public key") 
     585 
     586  
     587    #_________________________________________________________________________ 
     588    def __setClntPriKeyFilePath(self, clntPriKeyFilePath): 
     589         
     590        if not isinstance(clntPriKeyFilePath, basestring): 
     591            raise AttAuthorityClientError(\ 
     592                "Client public key file path must be a valid string") 
     593         
     594        self.__clntPriKeyFilePath = clntPriKeyFilePath 
     595         
     596    clntPriKeyFilePath = property(fset=__setClntPriKeyFilePath, 
     597                                  doc="File path for client private key") 
     598 
     599 
     600    #_________________________________________________________________________ 
     601    def __getAttAuthorityPubKey(self): 
     602        """Retrieve the public key from the URI""" 
     603         
     604        # Don't proceed unless URI was set - user may have set public key via 
     605        # aaPubKeyFilePath instead 
     606        if self.__aaPubKeyFilePath is not None: 
     607            return 
     608                 
     609        try: 
     610            self.__aaPubKeyTempFile = tempfile.NamedTemporaryFile() 
     611             
     612            pubKey = self.getPubKey() 
     613            open(self.__aaPubKeyTempFile.name, "w").write(pubKey) 
     614             
     615            self.__aaPubKeyFilePath = self.__aaPubKeyTempFile.name 
     616             
     617        except IOError, (errNo, errMsg): 
     618            raise AttAuthorityClientError(\ 
     619                                "Writing public key to temp \"%s\": %s" % \ 
     620                                (self.__aaPubKeyTempFile.name, errMsg))                                                                       
     621        except Exception, e: 
     622            raise AttAuthorityClientError("Retrieving Attribute Authority " +\ 
     623                                          "public key: %s" % str(e)) 
     624     
     625         
     626    #_________________________________________________________________________ 
     627    def serviceProxy(self, aaWSDL=None): 
     628        """Set the WS proxy for the Attribute Authority""" 
     629        if aaWSDL: 
     630            self.__setAAwsdl(aaWSDL) 
     631 
     632        try: 
     633            self.__aaSrv = ServiceProxy(self.__aaWSDL,  
     634                                        use_wsdl=True,  
     635                                        tracefile=self.__traceFile) 
     636        except Exception, e: 
     637            raise AttAuthorityClientError(\ 
     638                    "Initialising WSDL Service Proxy: " + str(e)) 
     639 
     640                                     
     641    #_________________________________________________________________________ 
     642    def getTrustedHostInfo(self, role=None, clntPriKeyPwd=None): 
     643        """Get list of trusted hosts for an Attribute Authority 
     644         
     645        """ 
     646 
     647        # If Public key was not set, retrieve from server 
     648        self.__getAttAuthorityPubKey() 
     649             
     650     
     651        # Make request for new user 
     652        try:    
     653            trustedHostInfoReq = aaIO.TrustedHostInfoReq(role=role,  
     654                                encrCert=self.__clntPubKey, 
     655                                encrPubKeyFilePath=self.__aaPubKeyFilePath)  
     656 
     657            # Pass encrypted request 
     658            resp = self.__aaSrv.getTrustedHostInfo(\ 
     659                                    trustedHostInfoReq=trustedHostInfoReq()) 
     660                         
     661            trustedHostInfoResp = aaIO.TrustedHostInfoResp(\ 
     662                                xmlTxt=resp['trustedHostInfoResp'], 
     663                                encrPriKeyFilePath=self.__clntPriKeyFilePath, 
     664                                encrPriKeyPwd=clntPriKeyPwd)             
     665        except Exception, e: 
     666            raise AttAuthorityClientError("Error: " + str(e)) 
     667   
     668                             
     669        if 'errMsg' in trustedHostInfoResp and trustedHostInfoResp['errMsg']: 
     670            raise AttAuthorityClientError(trustedHostInfoResp['errMsg']) 
     671 
     672        return trustedHostInfoResp['trustedHosts'] 
     673     
     674 
     675    #_________________________________________________________________________ 
     676    def reqAuthorisation(self,  
     677                         proxyCert,  
     678                         userAttCert=None,  
     679                         clntPriKeyPwd=None): 
     680        """Request authorisation from NDG Attribute Authority Web Service.""" 
     681 
     682 
     683        # If Public key was not set, retrieve from server 
     684        self.__getAttAuthorityPubKey() 
     685 
     686 
     687        try:    
     688            authReq = aaIO.AuthorisationReq(proxyCert=proxyCert, 
     689                                 userAttCert=userAttCert, 
     690                                 encrCert=self.__clntPubKey, 
     691                                 encrPubKeyFilePath=self.__aaPubKeyFilePath)  
     692 
     693            resp = self.__aaSrv.reqAuthorisation(authorisationReq=authReq()) 
     694                                       
     695            authResp=aaIO.AuthorisationResp(xmlTxt=resp['authorisationResp'], 
     696                                encrPriKeyFilePath=self.__clntPriKeyFilePath, 
     697                                encrPriKeyPwd=clntPriKeyPwd)            
     698        except Exception, e: 
     699            raise AttAuthorityClientError("Error: " + str(e)) 
     700             
     701        if 'errMsg' in authResp and authResp['errMsg']: 
     702            raise AttAuthorityClientError(resp['errMsg']) 
     703         
     704        return authResp 
     705 
     706                                     
     707    #_________________________________________________________________________ 
     708    def getPubKey(self): 
     709        """Retrieve the public key of the Session Manager""" 
     710         
     711        try:    
     712            pubKeyReq = aaIO.PubKeyReq()  
     713 
     714            # Pass request 
     715            resp = self.__aaSrv.getPubKey(pubKeyReq=pubKeyReq()) 
     716                         
     717            pubKeyResp = aaIO.PubKeyResp(xmlTxt=resp['pubKeyResp']) 
     718                             
     719            if 'errMsg' in pubKeyResp and pubKeyResp['errMsg']: 
     720                raise AttAuthorityClientError(pubKeyResp['errMsg']) 
     721             
     722            return pubKeyResp['pubKey'] 
     723         
     724        except Exception, e: 
     725            raise AttAuthorityClientError(\ 
     726                                    "Error retrieving public key: " + str(e))                               
  • TI12-security/trunk/python/NDG/attAuthority_services_server.py

    r739 r848  
    6666                                     encrPriKeyPwd=self.__srv['keyPwd']) 
    6767                    
    68             trustedHosts = self.__srv.getTrustedHostInfo(**reqKeys.xmlTags) 
     68            trustedHosts = self.__srv.getTrustedHostInfo(role=reqKeys['role']) 
    6969            trustedHostInfoResp = TrustedHostInfoResp(\ 
    7070                                                   trustedHosts=trustedHosts)                                          
  • TI12-security/trunk/python/Tests/AttAuthorityClientTest.py

    r739 r848  
    77P J Kershaw 05/05/05 
    88 
    9 Copyright (C) 2005 CCLRC & NERC 
    10  
    11 This software may be distributed under the terms of the Q Public License, 
    12 version 1.0 or later. 
    13 """ 
    14  
    15 #!/usr/bin/env python 
    16  
    17 """Test harness for NDG Session client - makes requests for authentication and 
    18 authorisation 
    19  
    20 NERC Data Grid Project 
    21  
    22 P J Kershaw 23/02/06 
    23  
    24 Copyright (C) 2005 CCLRC & NERC 
     9Copyright (C) 2006 CCLRC & NERC 
    2510 
    2611This software may be distributed under the terms of the Q Public License, 
  • TI12-security/trunk/python/Tests/attAuthorityIOtest.py

    r674 r848  
    55 
    66 
    7 class attAuthorityIOtestCase(unittest.TestCase): 
     7class AttAuthorityIOtestCase(unittest.TestCase): 
    88     
    99    def setUp(self): 
     
    1616         
    1717        try: 
    18             proxyCert = \ 
    19 """-----BEGIN CERTIFICATE----- 
    20 MIIBzTCCATagAwIBAgIEWe/cpDANBgkqhkiG9w0BAQQFADAwMQwwCgYDVQQKEwNO 
    21 REcxDTALBgNVBAsTBEJBREMxETAPBgNVBAMTCHBqa2Vyc2hhMB4XDTA2MDMxNDEz 
    22 MDEyN1oXDTA2MDMxNDIxMDYyN1owRTEMMAoGA1UEChMDTkRHMQ0wCwYDVQQLEwRC 
    23 QURDMREwDwYDVQQDEwhwamtlcnNoYTETMBEGA1UEAxMKMTUwODg5MTgxMjBcMA0G 
    24 CSqGSIb3DQEBAQUAA0sAMEgCQQCZ3CvkHbuKWA4z2zq010lWbwxcElz6YJCwKRM0 
    25 VgQldCTuQdE8rzxG7nD0/qqHACZFZQlS23mP8XdEO1HNfFNpAgMBAAGjIzAhMB8G 
    26 CisGAQQBm1ABgV4BAf8EDjAMMAoGCCsGAQUFBxUBMA0GCSqGSIb3DQEBBAUAA4GB 
    27 AEkYzMXcZfS+ndCeLk2jwJQydQe0zqyJtxJX8RdKQVaqC52nj+NOyU1+SunnGa7u 
    28 CukvQpqBwIICdWWeejKWWSZQk5tcbYwE6DHSonHXGEyLppYq6fqg7Ac+ye/xIBul 
    29 wCbb7xaFkUc5wKpjG02ePbf+abSKvD99RwWPIWgjRsDq 
    30 -----END CERTIFICATE----- 
    31 -----BEGIN RSA PRIVATE KEY----- 
    32 MIIBPAIBAAJBAJncK+Qdu4pYDjPbOrTXSVZvDFwSXPpgkLApEzRWBCV0JO5B0Tyv 
    33 PEbucPT+qocAJkVlCVLbeY/xd0Q7Uc18U2kCAwEAAQJBAJJ7zwHI2PN2sFboovTn 
    34 fvgek7rY9NKfu0Esag9K0XnBpzuSwkeT3jBAwdXD9srXlTLIITN30LAjaYBjXqcf 
    35 ooECIQDG3maDGKOuck9pqd1NdL7FgkTfFKiw8IRRx80AQAkHmQIhAMYPpswJZGL/ 
    36 /S93hCivtedxOOwEGv6Vjev8HhpNC8xRAiEAnV9l1BxteyDugvlvLVpTlUzvX3Gj 
    37 xNGwhF8OdUI3YxECIQCTPO9yn0jRkBxYPTEyTe2csL7wNd0bhXKMDFEUnFI5AQIg 
    38 YNHWvo3Il0i2+6xZ4Z5yg83XJLKlse481DGbJCUkp2o= 
    39 -----END RSA PRIVATE KEY----- 
    40 -----BEGIN CERTIFICATE----- 
    41 MIIB6zCCAVSgAwIBAgIBDDANBgkqhkiG9w0BAQQFADAwMQwwCgYDVQQKEwNOREcx 
    42 DTALBgNVBAsTBEJBREMxETAPBgNVBAMTCFNpbXBsZUNBMB4XDTA2MDEwNjE0MjYw 
    43 NloXDTA4MDEwNjE0MTE0NlowMDEMMAoGA1UEChMDTkRHMQ0wCwYDVQQLEwRCQURD 
    44 MREwDwYDVQQDEwhwamtlcnNoYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA 
    45 yEj8Qz+yEHYKTLrQIOlayqWK9AVJu4k8ohfTrmORcNj8eoWJgJGe81Rr5zsimiqc 
    46 49neTwn0GDG3HWeNqQqFUsyrDttQOAc5aNtrFigvotj7yKAcnrpwDU1YISTNzJyi 
    47 3P3sLOYpDnkaurfEhKHjtEVavMHVp6jdzXZAE+sX510CAwEAAaMVMBMwEQYJYIZI 
    48 AYb4QgEBBAQDAgTwMA0GCSqGSIb3DQEBBAUAA4GBALNiZpIZQUOz25nBJeiOxCNi 
    49 dGGHZdDkHN7Bqq4XTjsaTRLFrkX0EqJHR/LtskUlRqeuJByYlt75XV3lesi/Xjcb 
    50 USAWTEl+NLY1JXp3Olrhk+Ialp8aIaM1hhG51wmRZFgmGN93RxiFhHIX3hlsRSdV 
    51 tbb57rWa5U6tlsforWg5 
    52 -----END CERTIFICATE-----""" 
     18            proxyCert = open("./proxy.pem").read().strip() 
    5319 
    5420            userAttCert = \ 
     
    12995         
    13096        try: 
    131             proxyCert = \ 
    132 """-----BEGIN CERTIFICATE----- 
    133 MIIBzTCCATagAwIBAgIEWe/cpDANBgkqhkiG9w0BAQQFADAwMQwwCgYDVQQKEwNO 
    134 REcxDTALBgNVBAsTBEJBREMxETAPBgNVBAMTCHBqa2Vyc2hhMB4XDTA2MDMxNDEz 
    135 MDEyN1oXDTA2MDMxNDIxMDYyN1owRTEMMAoGA1UEChMDTkRHMQ0wCwYDVQQLEwRC 
    136 QURDMREwDwYDVQQDEwhwamtlcnNoYTETMBEGA1UEAxMKMTUwODg5MTgxMjBcMA0G 
    137 CSqGSIb3DQEBAQUAA0sAMEgCQQCZ3CvkHbuKWA4z2zq010lWbwxcElz6YJCwKRM0 
    138 VgQldCTuQdE8rzxG7nD0/qqHACZFZQlS23mP8XdEO1HNfFNpAgMBAAGjIzAhMB8G 
    139 CisGAQQBm1ABgV4BAf8EDjAMMAoGCCsGAQUFBxUBMA0GCSqGSIb3DQEBBAUAA4GB 
    140 AEkYzMXcZfS+ndCeLk2jwJQydQe0zqyJtxJX8RdKQVaqC52nj+NOyU1+SunnGa7u 
    141 CukvQpqBwIICdWWeejKWWSZQk5tcbYwE6DHSonHXGEyLppYq6fqg7Ac+ye/xIBul 
    142 wCbb7xaFkUc5wKpjG02ePbf+abSKvD99RwWPIWgjRsDq 
    143 -----END CERTIFICATE----- 
    144 -----BEGIN RSA PRIVATE KEY----- 
    145 MIIBPAIBAAJBAJncK+Qdu4pYDjPbOrTXSVZvDFwSXPpgkLApEzRWBCV0JO5B0Tyv 
    146 PEbucPT+qocAJkVlCVLbeY/xd0Q7Uc18U2kCAwEAAQJBAJJ7zwHI2PN2sFboovTn 
    147 fvgek7rY9NKfu0Esag9K0XnBpzuSwkeT3jBAwdXD9srXlTLIITN30LAjaYBjXqcf 
    148 ooECIQDG3maDGKOuck9pqd1NdL7FgkTfFKiw8IRRx80AQAkHmQIhAMYPpswJZGL/ 
    149 /S93hCivtedxOOwEGv6Vjev8HhpNC8xRAiEAnV9l1BxteyDugvlvLVpTlUzvX3Gj 
    150 xNGwhF8OdUI3YxECIQCTPO9yn0jRkBxYPTEyTe2csL7wNd0bhXKMDFEUnFI5AQIg 
    151 YNHWvo3Il0i2+6xZ4Z5yg83XJLKlse481DGbJCUkp2o= 
    152 -----END RSA PRIVATE KEY----- 
    153 -----BEGIN CERTIFICATE----- 
    154 MIIB6zCCAVSgAwIBAgIBDDANBgkqhkiG9w0BAQQFADAwMQwwCgYDVQQKEwNOREcx 
    155 DTALBgNVBAsTBEJBREMxETAPBgNVBAMTCFNpbXBsZUNBMB4XDTA2MDEwNjE0MjYw 
    156 NloXDTA4MDEwNjE0MTE0NlowMDEMMAoGA1UEChMDTkRHMQ0wCwYDVQQLEwRCQURD 
    157 MREwDwYDVQQDEwhwamtlcnNoYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA 
    158 yEj8Qz+yEHYKTLrQIOlayqWK9AVJu4k8ohfTrmORcNj8eoWJgJGe81Rr5zsimiqc 
    159 49neTwn0GDG3HWeNqQqFUsyrDttQOAc5aNtrFigvotj7yKAcnrpwDU1YISTNzJyi 
    160 3P3sLOYpDnkaurfEhKHjtEVavMHVp6jdzXZAE+sX510CAwEAAaMVMBMwEQYJYIZI 
    161 AYb4QgEBBAQDAgTwMA0GCSqGSIb3DQEBBAUAA4GBALNiZpIZQUOz25nBJeiOxCNi 
    162 dGGHZdDkHN7Bqq4XTjsaTRLFrkX0EqJHR/LtskUlRqeuJByYlt75XV3lesi/Xjcb 
    163 USAWTEl+NLY1JXp3Olrhk+Ialp8aIaM1hhG51wmRZFgmGN93RxiFhHIX3hlsRSdV 
    164 tbb57rWa5U6tlsforWg5 
    165 -----END CERTIFICATE-----""" 
     97            proxyCert = open("./proxy.pem").read().strip() 
    16698 
    16799            userAttCert = "" 
     
    352284         
    353285 
    354 class attAuthorityIOtestSuite(unittest.TestSuite): 
     286class AttAuthorityIOtestSuite(unittest.TestSuite): 
    355287    def __init__(self): 
    356         map = map(attAuthorityIOtestCase, 
     288        map = map(AttAuthorityIOtestCase, 
    357289                  ( 
    358290#                    "testAuthorisationReq1", 
  • TI12-security/trunk/python/bin/ndgSessionClient.py

    r751 r848  
    2222from Cookie import SimpleCookie 
    2323 
    24 from NDG.SessionClient import * 
     24from NDG.SecurityClient import * 
    2525 
    2626 
Note: See TracChangeset for help on using the changeset viewer.