Changeset 1307 for TI12-security


Ignore:
Timestamp:
24/07/06 15:24:17 (13 years ago)
Author:
pjkersha
Message:

dist/NDG-Security-Dev-PostAlpha?.tar.gz: updated for the fixes listed below...

NDG/CredWallet.py:

  • fix - reqAuthorisation call to AttAuthorityClient? didn't include clntPubKeyFilePath and clntPriKeyFilePath

keywords.

overcome a problem checking the XML sig.

NDG/SecurityClient.py: fix to reqAuthorisation - an exception should be raised only in the case where the status
code response is "AccessError?"

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

Legend:

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

    r1304 r1307  
    529529            try: 
    530530                aaClnt = AttAuthorityClient(aaWSDL=aaWSDL, 
    531                                             aaPubKeyFilePath=aaPubKeyFilePath) 
     531                                aaPubKeyFilePath=aaPubKeyFilePath, 
     532                                clntPubKeyFilePath=self.__clntPubKeyFilePath, 
     533                                clntPriKeyFilePath=self.__clntPriKeyFilePath) 
    532534                                     
    533535                authzResp = aaClnt.reqAuthorisation(self.__proxyCertTxt,  
     
    539541 
    540542            if authzResp['statCode'] == authzResp.accessDenied: 
    541                 raise CredWalletAuthorisationDenied,\ 
     543                raise CredWalletAuthorisationDenied, \ 
    542544                            "Authorisation denied: %s" % authzResp['errMsg'] 
    543545 
    544546            elif authzResp['statCode'] == authzResp.accessGranted: 
    545                 attCert = authzResp['credential'] 
     547                # TODO: Temporary fudge - convert output into string and then  
     548                # re-convert into AttCert type to try to avoid strange error  
     549                # XML sig check 
     550                # 
     551                # P J Kershaw 24/07/06 
     552                attCert = AttCertParse(str(authzResp['credential'])) 
    546553                 
    547554            else: 
     
    555562 
    556563            if not isinstance(aaPropFilePath, basestring): 
    557                 raise CredWalletError("Attribute Authority Configuration " + \ 
    558                                       "file path must be a valid string") 
     564                raise CredWalletError, "Attribute Authority Configuration " +\ 
     565                                      "file path must be a valid string" 
    559566                                     
    560567            try: 
     
    568575                 
    569576            except AttAuthorityAccessDenied, e: 
    570                 raise CredWalletAuthorisationDenied(\ 
    571                                     "Authorisation denied: %s" % e) 
     577                raise CredWalletAuthorisationDenied, \ 
     578                                                "Authorisation denied: %s" % e 
    572579             
    573580            except Exception, e: 
    574                 raise CredWalletError("Requesting authorisation: %s" % e) 
     581                raise CredWalletError, "Requesting authorisation: %s" % e 
    575582 
    576583        else: 
    577             raise CredWalletError("Error requesting authorisation: " + \ 
    578                                   "a WSDL file or Attribute Authority " + \ 
    579                                   "configuration file must be specified") 
     584            raise CredWalletError, "Error requesting authorisation: " + \ 
     585                                   "a WSDL file or Attribute Authority " + \ 
     586                                   "configuration file must be specified" 
    580587         
    581588 
     
    583590        # for signature check in addCredential() 
    584591        if self.__caPubKeyFilePath is None: 
    585             raise CredWalletError("No CA certificate has been set") 
     592            raise CredWalletError, "No CA certificate has been set" 
    586593         
    587594        attCert.certFilePathList = self.__caPubKeyFilePath 
     
    619626                aaClnt = AttAuthorityClient(aaWSDL=aaWSDL, 
    620627                                aaPubKeyFilePath=aaPubKeyFilePath, 
    621                                 clntPubKeyFilePath=self.__clntPubKeyFilePath) 
     628                                clntPubKeyFilePath=self.__clntPubKeyFilePath, 
     629                                clntPriKeyFilePath=self.__clntPriKeyFilePath) 
    622630                                     
    623631                trustedHostInfo = aaClnt.getTrustedHostInfo(role=userRole, 
  • TI12-security/trunk/python/NDG/SecurityClient.py

    r1300 r1307  
    9393        if clntPubKeyFilePath: 
    9494            if clntPriKeyFilePath is None: 
    95                 raise SessionClientError(\ 
     95                raise SessionClientError, \ 
    9696                    "A Client private key file is required as well a " + \ 
    97                     "public key") 
     97                    "public key" 
    9898                     
    9999            self.__setClntPubKeyFilePath(clntPubKeyFilePath) 
     
    112112         
    113113        if not isinstance(smWSDL, basestring): 
    114             raise SessionClientError(\ 
    115                             "Session Manager WSDL URI must be a valid string") 
     114            raise SessionClientError, \ 
     115                             "Session Manager WSDL URI must be a valid string" 
    116116         
    117117        self.__smWSDL = smWSDL 
     
    124124         
    125125        if not isinstance(smPubKeyFilePath, basestring): 
    126             raise SessionClientError(\ 
    127                 "Session Manager public key URI must be a valid string") 
     126            raise SessionClientError, \ 
     127                "Session Manager public key URI must be a valid string" 
    128128         
    129129        self.__smPubKeyFilePath = smPubKeyFilePath 
    130130         
    131131    smPubKeyFilePath = property(fset=__setSMpubKeyFilePath, 
    132                            doc="Set Session Manager public key URI") 
     132                                doc="Set Session Manager public key URI") 
    133133 
    134134  
     
    145145             
    146146        except IOError, (errNo, errMsg): 
    147             raise SessionClientError(\ 
    148                     "Reading certificate file \"%s\": %s" % \ 
    149                     (self.__clntPubKeyFilePath, errMsg)) 
     147            raise SessionClientError, "Reading certificate file \"%s\": %s" %\ 
     148                                        (self.__clntPubKeyFilePath, errMsg) 
    150149                                
    151150        except Exception, e: 
    152             raise SessionClientError(\ 
    153                     "Reading certificate file \"%s\": %s" % \ 
    154                     (self.__clntPubKeyFilePath, str(e))) 
     151            raise SessionClientError, "Reading certificate file \"%s\": %s" %\ 
     152                                        (self.__clntPubKeyFilePath, str(e)) 
    155153         
    156154    clntPubKeyFilePath = property(fset=__setClntPubKeyFilePath, 
     
    162160         
    163161        if not isinstance(clntPriKeyFilePath, basestring): 
    164             raise SessionClientError(\ 
    165                 "Client public key file path must be a valid string") 
     162            raise SessionClientError, \ 
     163                        "Client public key file path must be a valid string" 
    166164         
    167165        self.__clntPriKeyFilePath = clntPriKeyFilePath 
     
    189187             
    190188        except IOError, (errNo, errMsg): 
    191             raise SessionClientError(\ 
     189            raise SessionClientError, \ 
    192190                                "Writing public key to temp \"%s\": %s" % \ 
    193                                 (self.__smPubKeyTempFile.name, errMsg)                                                                     
    194         except Exception, e: 
    195             raise SessionClientError("Retrieving Session Manager " + \ 
    196                                      "public key: %s" % str(e)) 
     191                                (self.__smPubKeyTempFile.name, errMsg)                                                                     
     192        except Exception, e: 
     193            raise SessionClientError, "Retrieving Session Manager " + \ 
     194                                     "public key: %s" % str(e) 
    197195     
    198196         
     
    241239             
    242240            except Exception, e: 
    243                 raise SessionClientError("Pass-phrase not defined: " + str(e)) 
     241                raise SessionClientError, "Pass-phrase not defined: " + str(e) 
    244242 
    245243 
     
    262260                                encrPriKeyPwd=clntPriKeyPwd)             
    263261        except Exception, e: 
    264             raise SessionClientError("Error adding new user: " + str(e)) 
     262            raise SessionClientError, "Error adding new user: " + str(e) 
    265263   
    266264                             
     
    307305             
    308306            except Exception, e: 
    309                 raise SessionClientError("Pass-phrase not defined: " + str(e)) 
     307                raise SessionClientError, "Pass-phrase not defined: " + str(e) 
    310308 
    311309 
     
    340338             
    341339            else: 
    342                raise SessionClientError(\ 
    343                "Neither \"sessCookie\" or \"proxyCert\" found in response") 
     340               raise SessionClientError, \ 
     341                   "Neither \"sessCookie\" or \"proxyCert\" found in response" 
    344342                
    345343        except Exception, e: 
    346             raise SessionClientError(\ 
    347                             "Error connecting to Session Manager: " + str(e)) 
     344            raise SessionClientError, \ 
     345                            "Error connecting to Session Manager: " + str(e) 
    348346     
    349347     
     
    404402                    sessCookie = SimpleCookie(sessCookie) 
    405403                except Exception, e: 
    406                     raise SessionClientError(\ 
    407                                     "Error parsing session cookie: " + str(e)) 
     404                    raise SessionClientError, \ 
     405                                    "Error parsing session cookie: " + str(e) 
    408406 
    409407            sessID = sessCookie['NDG-ID1'].value 
     
    411409             
    412410        elif not sessID and not encrSessMgrWSDLuri and not proxyCert: 
    413             raise SessionClientError(\ 
     411            raise SessionClientError, \ 
    414412                '"proxyCert" or "sessCookie or "sessID" and ' + \ 
    415                 '"encrSessMgrWSDLuri" keywords must be set') 
     413                '"encrSessMgrWSDLuri" keywords must be set' 
    416414 
    417415 
     
    422420        # Make authorisation request 
    423421        try: 
    424             authReq = smIO.AuthorisationReq(aaWSDL=aaWSDL, 
     422            authzReq = smIO.AuthorisationReq(aaWSDL=aaWSDL, 
    425423                                 aaPubKey=aaPubKey, 
    426424                                 sessID=sessID,  
     
    435433                                 encrPubKeyFilePath=self.__smPubKeyFilePath)  
    436434                                             
    437             resp = self.__smSrv.reqAuthorisation(authorisationReq=authReq()) 
    438             authResp = smIO.AuthorisationResp(xmlTxt=resp['authorisationResp'], 
     435            resp = self.__smSrv.reqAuthorisation(authorisationReq=authzReq()) 
     436            authzResp = smIO.AuthorisationResp(\ 
     437                                xmlTxt=resp['authorisationResp'], 
    439438                                encrPriKeyFilePath=self.__clntPriKeyFilePath, 
    440439                                encrPriKeyPwd=clntPriKeyPwd) 
    441             return authResp 
    442              
    443         except Exception, e: 
    444             raise SessionClientError(\ 
    445                                 "Error in authorisation request: " + str(e)) 
     440            return authzResp 
     441             
     442        except Exception, e: 
     443            raise SessionClientError, \ 
     444                                "Error in authorisation request: " + str(e) 
    446445 
    447446                                     
     
    464463         
    465464        except Exception, e: 
    466             raise SessionClientError("Error retrieving public key: " + str(e)) 
     465            raise SessionClientError, "Error retrieving public key: " + str(e) 
    467466 
    468467 
     
    529528        if clntPubKeyFilePath: 
    530529            if clntPriKeyFilePath is None: 
    531                 raise AttAuthorityClientError(\ 
     530                raise AttAuthorityClientError, \ 
    532531                    "A Client private key file is required as well a " + \ 
    533                     "public key") 
     532                    "public key" 
    534533                     
    535534            self.__setClntPubKeyFilePath(clntPubKeyFilePath) 
     
    730729 
    731730        try:    
    732             authReq = aaIO.AuthorisationReq(proxyCert=proxyCert, 
     731            authzReq = aaIO.AuthorisationReq(proxyCert=proxyCert, 
    733732                                 userAttCert=userAttCert, 
    734733                                 encrCert=self.__clntPubKey, 
    735734                                 encrPubKeyFilePath=self.__aaPubKeyFilePath)  
    736735 
    737             resp = self.__aaSrv.reqAuthorisation(authorisationReq=authReq()) 
     736            resp = self.__aaSrv.reqAuthorisation(authorisationReq=authzReq()) 
    738737                                       
    739             authResp=aaIO.AuthorisationResp(xmlTxt=resp['authorisationResp'], 
     738            authzResp=aaIO.AuthorisationResp(xmlTxt=resp['authorisationResp'], 
    740739                                encrPriKeyFilePath=self.__clntPriKeyFilePath, 
    741740                                encrPriKeyPwd=clntPriKeyPwd)            
     
    743742            raise AttAuthorityClientError, "Error: " + str(e) 
    744743             
    745         if 'errMsg' in authResp and authResp['errMsg']: 
    746             raise AttAuthorityClientError, authResp['errMsg'] 
    747          
    748         return authResp 
     744        if authzResp['statCode'] == authzResp.accessError: 
     745            raise AttAuthorityClientError, authzResp['errMsg'] 
     746         
     747        return authzResp 
    749748 
    750749                                     
  • TI12-security/trunk/python/Tests/SecurityClientTest.py

    r1304 r1307  
    6767 
    6868            # Uncomment for required test 
    69             self.config = gabrielConfig 
    70             #self.config = glueConfig 
     69            #self.config = gabrielConfig 
     70            self.config = glueConfig 
    7171 
    7272             
Note: See TracChangeset for help on using the changeset viewer.