Changeset 712


Ignore:
Timestamp:
27/03/06 17:40:36 (14 years ago)
Author:
pjkersha
Message:

ndgSessionClient.py: fixed client private key password file read.

AttAuthority?.py: changed X509Cert.isValidTime() calls to give more error info.

XMLSecDoc.py: metaclass for XMLSec initialisation didn't work - do initialisation in class
init as before.

SessionClient?.py: removed test code - this is kept in a separate file in Tests/.

Session.py: modified SessionMgr?.reqAuthorisation() to create a fresh AuthorisationResp? object
from the return from redirectAuthorisationReq() to avoid confusion with encrypted output
message.

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

Legend:

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

    r674 r712  
    125125 
    126126        # Check it's valid 
    127         if not self.__cert.isValidTime(): 
     127        try: 
     128            self.__cert.isValidTime(raiseExcep=True) 
     129             
     130        except Exception, e: 
    128131            raise AttAuthorityError(\ 
    129                 "Attribute Authority's certificate has expired!") 
     132                    "Attribute Authority's certificate is invalid: " + str(e)) 
    130133         
    131134        # Check CA certificate 
     
    133136        caCert.read() 
    134137         
    135         if not caCert.isValidTime(): 
    136             raise AttAuthorityError("CA certificate has expired!") 
    137  
     138        try: 
     139            caCert.isValidTime(raiseExcep=True) 
     140             
     141        except Exception, e: 
     142            raise AttAuthorityError("CA certificate is invalid: " + str(e)) 
    138143         
    139144        # Issuer details - serialise using the separator string set in the 
     
    265270 
    266271        # Check proxy certificate hasn't expired 
    267         if not usrProxyCert.isValidTime(): 
    268             raise AttAuthorityError("User Proxy Certificate has expired") 
     272        try: 
     273            usrProxyCert.isValidTime(raiseExcep=True) 
     274             
     275        except Exception, e: 
     276            raise AttAuthorityError("User Proxy Certificate is invalid: " + \ 
     277                                    str(e)) 
    269278 
    270279             
  • TI12-security/trunk/python/NDG/Session.py

    r701 r712  
    795795                 
    796796                # Session is held on a remote Session  Manager 
    797                 return self.__redirectAuthorisationReq(userSessMgrWSDLuri, 
    798                                                        **reqKeys) 
     797                userSessMgrResp = self.__redirectAuthorisationReq(\ 
     798                                                        userSessMgrWSDLuri, 
     799                                                        **reqKeys) 
     800 
     801                # Reset response by making a new AuthorisationResp object 
     802                # The response from the remote Session Manager will still 
     803                # contain the encrypted XML sent by it.  This should be 
     804                # discarded 
     805                return AuthorisationResp(**userSessMgrResp.xmlTags) 
    799806 
    800807             
  • TI12-security/trunk/python/NDG/SessionClient.py

    r706 r712  
    421421            raise SessionClientError(\ 
    422422                                "Error in authorisation request: " + str(e)) 
    423  
    424      
    425 #_____________________________________________________________________________ 
    426 if __name__ == '__main__': 
    427  
    428     if len(sys.argv) > 1 and sys.argv[1] == '-d': 
    429         import pdb 
    430         pdb.set_trace() 
    431  
    432     try: 
    433          
    434         aaWSDL = 'http://glue.badc.rl.ac.uk/attAuthority.wsdl' 
    435          
    436         # Session Manager WSDL 
    437         #smWSDL = 'http://livglue.nerc-liv.ac.uk/sessionMgr.wsdl' 
    438         smWSDL = 'http://glue.badc.rl.ac.uk/sessionMgr.wsdl' 
    439          
    440         # Public key of session manager used to encrypt requests 
    441         smPubKeyFilePath = None#'../certs/badc-sm-cert.pem' 
    442          
    443         userName = 'pjkbodc'#'pjkersha' 
    444  
    445         sessClnt = SessionClient(smWSDL=smWSDL, 
    446                                  smPubKeyFilePath=smPubKeyFilePath, 
    447                                  traceFile=sys.stderr) 
    448          
    449 #        sessClnt.addUser(userName, pPhraseFilePath="../tmp") 
    450         sSessCookie = sessClnt.connect(userName, pPhraseFilePath="../tmp") 
    451 #        sessCookie = SimpleCookie(sSessCookie) 
    452 #        authResp = sessClnt.reqAuthorisation(sessCookie['NDG-ID1'].value,  
    453 #                                             sessCookie['NDG-ID2'].value, 
    454 #                                             aaWSDL=aaWSDL) 
    455         print authResp 
    456          
    457     except Exception, e: 
    458         sys.stderr.write(str(e) + os.linesep) 
    459         sys.exit(1) 
    460          
  • TI12-security/trunk/python/NDG/XMLSecDoc.py

    r706 r712  
    7474    """Implements XML Signature and XML Encryption for a Document.""" 
    7575 
    76     __metaclass__ = XMLSecDocMetaClass 
     76    #__metaclass__ = XMLSecDocMetaClass 
    7777     
    7878    def __init__(self, 
     
    151151        self.__bKeysStoreFreed = False 
    152152  
    153         #self.__initLibs() 
     153        self.__initLibs() 
    154154         
    155155         
     
    11931193                                   xmlsec.EncNs) 
    11941194        if encrNode is None: 
    1195             raise XMLSecDocError("Start node not found in \"%s\"" % \ 
    1196                                                             self.__filePath) 
     1195            raise XMLSecDocError("Start node not found") 
    11971196         
    11981197         
  • TI12-security/trunk/python/bin/ndgSessionClient.py

    r706 r712  
    6767def setClntPriKeyPwd(option, optStr, value, parser): 
    6868    """Parser Callback function for reading client private key password""" 
     69 
    6970    try: 
    7071        parser.values.clntPriKeyPwd = open(value).read().strip() 
     
    139140"""X.509 Certificate of Session Manager.  This is used to encrypt the request 
    140141to the Session Manager.  Set as a local file path or remote URI.  WARNING: 
    141 If this is not set, the request will be sent back in clear text""") 
     142If this is not set, the request will be sent in clear text""") 
    142143 
    143144    parser.add_option("-s", 
     
    244245    (options, args) = parser.parse_args() 
    245246 
     247#    import pdb 
     248#    pdb.set_trace() 
    246249    if not options.sessMgrWSDLuri:         
    247250        sys.stderr.write("Error, No Session Manager WSDL URI set.\n\n") 
     
    256259        if options.bPassPhraseFromStdin: 
    257260            # Read from standard input 
    258             passPhrase = sys.stdin.read().strip() 
    259              
     261            passPhrase = sys.stdin.read().strip()            
    260262        else: 
    261263            # Obtain from prompt 
     
    268270        # Obtain from prompt 
    269271        try: 
    270             passPhrase = getpass.getpass(\ 
     272            options.clntPriKeyPwd = getpass.getpass(\ 
    271273                                    prompt="Client private key pass-phrase: ")  
    272274        except KeyboardInterrupt: 
Note: See TracChangeset for help on using the changeset viewer.