Changeset 4407


Ignore:
Timestamp:
31/10/08 20:32:22 (11 years ago)
Author:
pjkersha
Message:

More fixes to session manager client

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

Legend:

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

    r4406 r4407  
    5050    trusted hosts for the given input role name""" 
    5151 
     52class InvalidAttributeAuthorityClientCtx(AttributeAuthorityClientError): 
     53    """Attribute Authority ZSI Client is not initialised""" 
    5254 
    5355class AttributeAuthorityClient(object): 
     
    111113            self.__setURI(uri) 
    112114 
    113         self.__setHTTPProxyHost(httpProxyHost) 
    114         self.__setNoHttpProxyList(noHttpProxyList) 
     115        self.httpProxyHost = httpProxyHost 
     116        self.noHttpProxyList = noHttpProxyList 
    115117         
    116118        if sslPeerCertCN: 
    117             self.__setSSLPeerCertCN(sslPeerCertCN) 
     119            self.sslPeerCertCN = sslPeerCertCN 
    118120         
    119121        if sslCACertList: 
    120             self.__setSSLCACertList(sslCACertList) 
     122            self.sslCACertList = sslCACertList 
    121123        elif sslCACertFilePathList: 
    122             self.__setSSLCACertFilePathList(sslCACertFilePathList) 
     124            self.sslCACertFilePathList = sslCACertFilePathList 
    123125         
    124126        # WS-Security Signature handler - set only if any of the keywords were 
     
    168170        setting""" 
    169171        if self._transport != ProxyHTTPConnection: 
    170             log.info("Ignoring httpProxyHost setting: transport class is " +\ 
     172            log.info("Ignoring httpProxyHost setting: transport class is " 
    171173                     "not ProxyHTTPConnection type") 
    172174            return 
     
    180182        """Set to list of hosts for which to ignore the HTTP Proxy setting""" 
    181183        if self._transport != ProxyHTTPConnection: 
    182             log.info("Ignore noHttpProxyList setting: transport " + \ 
    183                      "class is not ProxyHTTPConnection type") 
     184            log.info("Ignore noHttpProxyList setting: transport class is not " 
     185                     "ProxyHTTPConnection type") 
    184186            return 
    185187         
     
    187189 
    188190    noHttpProxyList = property(fset=__setNoHttpProxyList,  
    189     doc="Set to list of hosts for which to ignore the HTTP Proxy setting") 
     191                               doc="Set to list of hosts for which to ignore " 
     192                                   "the HTTP Proxy setting") 
    190193 
    191194    def __setSSLPeerCertCN(self, cn): 
     
    202205 
    203206    sslPeerCertCN = property(fset=__setSSLPeerCertCN,  
    204 doc="for https connections, set CN of peer cert if other than peer hostname") 
     207                             doc="for https connections, set CN of peer cert " 
     208                                 "if other than peer hostname") 
    205209 
    206210    def __setSSLCACertList(self, caCertList): 
     
    217221 
    218222    sslCACertList = property(fset=__setSSLCACertList,  
    219 doc="for https connections, set list of CA certs from which to verify peer cert") 
     223                             doc="for https connections, set list of CA " 
     224                                 "certs from which to verify peer cert") 
    220225 
    221226    def __setSSLCACertFilePathList(self, caCertFilePathList): 
     
    240245        if signatureHandler is not None and \ 
    241246           not isinstance(signatureHandler, signatureHandler): 
    242             raise AttributeError, \ 
    243     "Signature Handler must be %s type or None for no message security" % \ 
    244         "ndg.security.common.wssecurity.dom.SignatureHandler" 
     247            raise AttributeError("Signature Handler must be %s type or None " 
     248                                 "for no message security" %  
     249                        "ndg.security.common.wssecurity.dom.SignatureHandler") 
    245250                             
    246251        self.__signatureHandler = signatureHandler 
     
    286291     
    287292        if not self.__srv: 
    288             raise InvalidSessionManagerClientCtx(\ 
    289                                         "Client binding is not initialised") 
     293            raise InvalidAttributeAuthorityClientCtx("Client binding is not " 
     294                                                     "initialised") 
    290295 
    291296        try: 
     
    293298            response = list(self.__srv.getHostInfo()) 
    294299        except httplib.BadStatusLine, e: 
    295             raise AttributeAuthorityClientError, "HTTP bad status line: %s" % e 
     300            raise AttributeAuthorityClientError("HTTP bad status line: %s" % e) 
    296301 
    297302        except Exception, e: 
     
    329334     
    330335        if not self.__srv: 
    331             raise InvalidSessionManagerClientCtx(\ 
    332                                         "Client binding is not initialised") 
     336            raise InvalidAttributeAuthorityClientCtx("Client binding is not " 
     337                                                     "initialised") 
    333338             
    334339        try: 
     
    336341 
    337342        except httplib.BadStatusLine, e: 
    338             raise AttributeAuthorityClientError, "HTTP bad status line: %s" % e 
     343            raise AttributeAuthorityClientError("HTTP bad status line: %s" % e) 
    339344 
    340345        except Exception, e: 
     
    374379     
    375380        if not self.__srv: 
    376             raise InvalidSessionManagerClientCtx(\ 
    377                                         "Client binding is not initialised") 
     381            raise InvalidAttributeAuthorityClientCtx("Client binding is not " 
     382                                                     "initialised") 
    378383 
    379384        hosts = self.__srv.getAllHostsInfo() 
     
    382387 
    383388        except httplib.BadStatusLine, e: 
    384             raise AttributeAuthorityClientError, "HTTP bad status line: %s" % e 
     389            raise AttributeAuthorityClientError("HTTP bad status line: %s" % e) 
    385390 
    386391        except Exception, e: 
     
    443448     
    444449        if not self.__srv: 
    445             raise InvalidSessionManagerClientCtx(\ 
    446                                         "Client binding is not initialised") 
     450            raise InvalidAttributeAuthorityClientCtx("Client binding is not " 
     451                                                     "initialised") 
    447452 
    448453        # Ensure cert is serialized before passing over web service interface 
     
    453458            sAttCert, msg = self.__srv.getAttCert(userId,userCert,userAttCert)   
    454459        except httplib.BadStatusLine, e: 
    455             raise AttributeAuthorityClientError, \ 
    456                 'Calling "%s" HTTP bad status line: %s' % (self.__uri, e) 
     460            raise AttributeAuthorityClientError( 
     461                'Calling "%s" HTTP bad status line: %s' % (self.__uri, e)) 
    457462 
    458463        except Exception, e: 
     
    478483     
    479484        if not self.__srv: 
    480             raise InvalidSessionManagerClientCtx(\ 
    481                                         "Client binding is not initialised") 
     485            raise InvalidAttributeAuthorityClientCtx("Client binding is not " 
     486                                                     "initialised") 
    482487         
    483488        try: 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/credentialwallet.py

    r4406 r4407  
    977977                            SignatureHandler.binSecTokValType["X509PKIPathv1"] 
    978978                attributeAuthorityClnt.signatureHandler.signingCertChain = \ 
    979                                     (self._issuingX509Cert, self._userX509Cert)                 
     979                                    (self.issuingX509Cert, self.userX509Cert)                 
    980980 
    981981                attributeAuthorityClnt.signatureHandler.signingPriKey = \ 
     
    988988                                    SignatureHandler.binSecTokValType["X509v3"] 
    989989                attributeAuthorityClnt.signatureHandler.signingCert = \ 
    990                                                             self._userX509Cert 
     990                                                            self.userX509Cert 
    991991 
    992992                attributeAuthorityClnt.signatureHandler.signingPriKey = \ 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/sessionmanager.py

    r4406 r4407  
    5555 
    5656class InvalidSessionManagerClientCtx(SessionManagerClientError): 
    57     """Attribute Authority ZSI Client is not initialised""" 
     57    """Session Manager ZSI Client is not initialised""" 
    5858  
    5959class AttributeRequestDenied(SessionManagerClientError): 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/wssecurity/BaseSignatureHandler.py

    r4404 r4407  
    693693        # of form <Hash cert subject name>.0 
    694694        try: 
    695             caCertList = [X509CertRead(caFile) \ 
    696                           for caFile in caCertFilePathList] 
     695            caCertList=[X509CertRead(caFile) for caFile in caCertFilePathList] 
    697696        except Exception, e: 
    698697            raise WSSecurityError('Loading CA certificate "%s" from file ' 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/zsi/sessionmanager/__init__.py

    r4406 r4407  
    165165                            userX509Cert=userX509Cert or request.UserX509Cert, 
    166166                            sessID=request.SessID, 
    167                             aaURI=request.AttAuthorityURI, 
     167                            attributeAuthorityURI=request.AttAuthorityURI, 
    168168                            reqRole=request.ReqRole, 
    169169                            mapFromTrustedHosts=request.MapFromTrustedHosts, 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/sessionmanagerclient/test_sessionmanagerclient.py

    r4406 r4407  
    6262 
    6363 
    64 #    def setUp(self): 
    65 #         
    66 #        if 'NDGSEC_INT_DEBUG' in os.environ: 
    67 #            import pdb 
    68 #            pdb.set_trace() 
    69 #         
    70 #        if 'NDGSEC_SMCLNT_UNITTEST_DIR' not in os.environ: 
    71 #            os.environ['NDGSEC_SMCLNT_UNITTEST_DIR'] = \ 
    72 #                os.path.abspath(os.path.dirname(__file__)) 
    73 #         
    74 #        configParser = SafeConfigParser() 
    75 #        configFilePath = jnPath(os.environ['NDGSEC_SMCLNT_UNITTEST_DIR'], 
    76 #                                "sessionMgrClientTest.cfg") 
    77 #        configParser.read(configFilePath) 
    78 #         
    79 #        self.cfg = {} 
    80 #        for section in configParser.sections(): 
    81 #            self.cfg[section] = dict(configParser.items(section)) 
    82 # 
    83 #        try: 
    84 #            if self.cfg['setUp'].get('clntprikeypwd') is None: 
    85 #                clntPriKeyPwd = getpass.getpass(\ 
    86 #                            prompt="\nsetUp - client private key password: ") 
    87 #            else: 
    88 #                clntPriKeyPwd = self.cfg['setUp'].get('clntprikeypwd') 
    89 #        except KeyboardInterrupt: 
    90 #            sys.exit(0) 
    91 # 
    92 #        # List of CA certificates for use in validation of certs used in 
    93 #        # signature for server reponse 
    94 #        try: 
    95 #            caCertFilePathList = [xpdVars(file) for file in \ 
    96 #                            self.cfg['setUp']['cacertfilepathlist'].split()] 
    97 #        except: 
    98 #            caCertFilePathList = [] 
    99 #           
    100 #        try: 
    101 #            sslCACertList = [X509CertRead(xpdVars(file)) for file in \ 
    102 #                         self.cfg['setUp']['sslcacertfilepathlist'].split()] 
    103 #        except KeyError: 
    104 #            sslCACertList = [] 
    105 #           
    106 #        clntCertFilePath = xpdVars(self.cfg['setUp']['clntcertfilepath']) 
    107 #        clntPriKeyFilePath = xpdVars(self.cfg['setUp']['clntprikeyfilepath']) 
    108 #         
    109 #        reqBinSecTokValType = self.cfg['setUp'].get('reqbinsectokvaltype') 
    110 # 
    111 #        # Set format for certificate(s) to be included in client SOAP messages 
    112 #        # to enable the Session Manager server to verify messages. 
    113 #        if reqBinSecTokValType == SigHdlr.binSecTokValType["X509PKIPathv1"]: 
    114 #            signingCertChain = \ 
    115 #                        self._getCertChainFromProxyCertFile(clntCertFilePath) 
    116 #            signingCertFilePath = None 
    117 #        else: 
    118 #            signingCertChain = None 
    119 #            signingCertFilePath = clntCertFilePath 
    120 # 
    121 #        # Inclusive namespace prefixes for Exclusive C14N 
    122 #        try: 
    123 #            refC14nInclNS = self.cfg['setUp']['wssrefinclns'].split()            
    124 #        except KeyError: 
    125 #            refC14nInclNS = [] 
    126 # 
    127 #        try: 
    128 #            signedInfoC14nInclNS = self.cfg['setUp']['wsssignedinfoinclns'].split()           
    129 #        except KeyError: 
    130 #            signedInfoC14nInclNS = [] 
    131 #                 
    132 #        setSignatureHandler = eval(self.cfg['setUp']['setsignaturehandler']) 
    133 #             
    134 #        # Initialise the Session Manager client connection 
    135 #        # Omit traceFile keyword to leave out SOAP debug info 
    136 #        self.clnt = SessionManagerClient(uri=self.cfg['setUp']['smuri'], 
    137 #                        sslCACertList=sslCACertList, 
    138 #                        sslPeerCertCN=self.cfg['setUp'].get('sslpeercertcn'), 
    139 #                        setSignatureHandler=setSignatureHandler, 
    140 #                        reqBinSecTokValType=reqBinSecTokValType, 
    141 #                        signingCertFilePath=clntCertFilePath, 
    142 #                        signingCertChain=signingCertChain, 
    143 #                        signingPriKeyFilePath=clntPriKeyFilePath, 
    144 #                        signingPriKeyPwd=clntPriKeyPwd, 
    145 #                        caCertFilePathList=caCertFilePathList, 
    146 #                        refC14nInclNS=refC14nInclNS, 
    147 #                        signedInfoC14nInclNS=signedInfoC14nInclNS, 
    148 #                        tracefile=sys.stderr)  
    14964         
    15065    def setUp(self): 
     
    204119                    passphrase=SessionManagerClientTestCase.test2Passphrase) 
    205120 
    206         print("User '%s' connected to Session Manager:\n%s" %  
    207                                                     (username, self.sessID)) 
     121        print("User '%s' connected to Session Manager:\n%s" % (username,  
     122                                                              self.sessID)) 
    208123             
    209124             
     
    213128         
    214129        self.test1Connect() 
    215         assert self.clnt.getSessionStatus(sessID=self.sessID), \ 
    216                 "Session is dead" 
     130        assert self.clnt.getSessionStatus(sessID=self.sessID),"Session is dead" 
    217131                 
    218132        print("User connected to Session Manager with sessID=%s" % self.sessID) 
    219133 
    220134        assert not self.clnt.getSessionStatus(sessID='abc'), \ 
    221             "sessID=abc shouldn't exist!" 
     135                                                "sessID=abc shouldn't exist!" 
    222136             
    223137        print "CORRECT: sessID=abc doesn't exist" 
     
    263177        self.clnt.disconnect(sessID=self.sessID) 
    264178         
    265         print "User disconnected from Session Manager:\n%s" % self.sessID 
     179        print("User disconnected from Session Manager:\n%s" % self.sessID) 
    266180             
    267181 
     
    289203            self.clnt.signatureHandler.signingCert = self.userX509Cert 
    290204             
    291         # Proxy cert in signature determines ID of session to 
    292         # delete 
     205        # user X.509 cert in signature determines ID of session to delete 
    293206        self.clnt.disconnect() 
    294207        print("User disconnected from Session Manager:\n%s"%self.userX509Cert) 
     
    299212        a session ID as authentication credential""" 
    300213 
    301         print "\n\t" + self.test6GetAttCertWithSessID.__doc__         
    302         self.test1Connect() 
    303          
    304         attCert = self.clnt.getAttCert(\ 
    305             sessID=self.sessID,  
    306             attAuthorityURI=self.cfg['test6GetAttCertWithSessID']['aaURI']) 
     214        print "\n\t" + self.test6GetAttCertWithSessID.__doc__ 
     215        thisSection = self.cfg['test6GetAttCertWithSessID']       
     216        self.test1Connect() 
     217         
     218        attCert = self.clnt.getAttCert(sessID=self.sessID,  
     219                                       attAuthorityURI=thisSection['aaURI']) 
    307220         
    308221        print "Attribute Certificate:\n%s" % attCert  
    309         attCert.filePath = \ 
    310             xpdVars(self.cfg['test6GetAttCertWithSessID']['acoutfilepath'])  
     222        attCert.filePath = xpdVars(thisSection['acOutFilePath'])  
    311223        attCert.write() 
    312224 
     
    342254        aaURI = self.cfg['test8GetMappedAttCertWithSessID']['aaURI'] 
    343255         
    344         attCert=self.clnt.getAttCert(sessID=self.sessID,attAuthorityURI=aaURI) 
     256        attCert=self.clnt.getAttCert(sessID=self.sessID, attAuthorityURI=aaURI) 
    345257         
    346258        print "Attribute Certificate:\n%s" % attCert   
     
    351263        request usinga session ID as authentication credential""" 
    352264         
    353         print "\n\t" + \ 
    354             self.test9GetAttCertWithExtAttCertListWithSessID.__doc__         
    355         self.test1Connect() 
    356          
    357         aaURI = \ 
    358             self.cfg['test9GetAttCertWithExtAttCertListWithSessID']['aaURI'] 
     265        print "\n\t" + self.test9GetAttCertWithExtAttCertListWithSessID.__doc__         
     266        self.test1Connect() 
     267        thisSection = self.cfg['test9GetAttCertWithExtAttCertListWithSessID'] 
     268         
     269        aaURI = thisSection['aaURI'] 
    359270         
    360271        # Use output from test6GetAttCertWithSessID! 
    361         extACFilePath = xpdVars(\ 
    362     self.cfg['test9GetAttCertWithExtAttCertListWithSessID']['extACFilePath']) 
     272        extACFilePath = xpdVars(thisSection['extACFilePath']) 
    363273        extAttCert = open(extACFilePath).read() 
    364274         
Note: See TracChangeset for help on using the changeset viewer.