Ignore:
Timestamp:
27/11/06 17:28:52 (14 years ago)
Author:
pjkersha
Message:

Integration of Session Manager client server and unit test packages. Tested with simple getX509Cert
call to Session Manager web service.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/SessionMgrClientTest.py

    r1771 r1773  
    1818""" 
    1919import unittest 
    20 import os 
    21  
     20import os, sys 
     21  
    2222from Cookie import SimpleCookie 
    2323 
    24 from ndg.security.common.SessionMgrClient import * 
     24from ndg.security.common.SessionMgr import SessionMgrClient 
     25from ndg.security.common.SessionCookie import SessionCookie 
    2526 
    2627 
     
    3031        self.config = {} 
    3132 
     33        testConfig = {} 
     34        testConfig['smURI'] = 'http://localhost:5000/SessionManager' 
     35        testConfig['aaURI'] = 'http://localhost:5700/AttributeAuthority' 
     36 
     37         
     38        testConfig['newUserName'] = 'BugsBunny'  
     39        testConfig['newUsernamePPhrase'] = open('./tmp1').read().strip()            
     40        testConfig['userName'] = 'gabriel' 
     41        testConfig['userNamePPhrase'] = open('./tmp2').read().strip() 
     42        testConfig['trustedHostRequiredRole'] = 'academic' 
     43 
     44        testConfig['aaCertFilePath'] = None 
     45 
     46        # Public key of session manager used to encrypt requests 
     47        # If no public key is set, it will be retrieved using the 
     48        # getCert WS method 
     49        testConfig['smCertFilePath'] = None 
     50 
     51        testConfig['clntPriKeyPwd'] = None#open("./tmp3").read().strip() 
     52 
     53        testConfig['clntCertFilePath'] = None#"./Junk-cert.pem" 
     54        testConfig['clntPriKeyFilePath'] = None#"./Junk-key.pem" 
     55         
     56         
    3257        # Gabriel settings 
    3358        gabrielConfig = {} 
     
    6893 
    6994        # Uncomment for required test 
    70         self.config = gabrielConfig 
     95        self.config = testConfig 
    7196        #self.config = glueConfig 
    7297 
    7398         
    74         self.__clntPriKeyPwd = open("./tmp2").read().strip() 
    75  
    76         clntCertFilePath = "./Junk-cert.pem" 
    77         clntPriKeyFilePath = "./Junk-key.pem" 
    78         traceFile = None#sys.stderr 
     99        self.__clntPriKeyPwd = self.config['clntPriKeyPwd'] 
     100        tracefile = sys.stderr 
    79101         
    80102        # Initialise the Session Manager client connection 
    81103        # Omit traceFile keyword to leave out SOAP debug info 
    82         self.clnt = SessionMgrClient(smURI=self.config['smURI'], 
     104        self.clnt = SessionMgrClient(uri=self.config['smURI'], 
    83105                        smCertFilePath=self.config['smCertFilePath'], 
    84                         clntCertFilePath=clntCertFilePath, 
    85                         clntPriKeyFilePath=clntPriKeyFilePath, 
    86                         traceFile=traceFile)  
     106                        clntCertFilePath=self.config['clntCertFilePath'], 
     107                        clntPriKeyFilePath=self.config['clntPriKeyFilePath'], 
     108                        tracefile=tracefile)  
    87109         
    88110        self.sessCookie = None 
     
    96118        # explicitly as a string use the 'pPhrase' keyword instead 
    97119        self.clnt.addUser(self.config['newUserName'],  
    98                           pPhraseFilePath="./tmp", 
     120                          pPhrase=self.config['newUsernamePPhrase'], 
    99121                          clntPriKeyPwd=self.__clntPriKeyPwd) 
    100122        print "Added user '%s'" % self.config['newUserName'] 
     
    108130        # explicitly as a string use the 'pPhrase' keyword instead 
    109131        sSessCookie = self.clnt.connect(self.config['userName'],  
    110                                     pPhraseFilePath="./tmp", 
    111                                     clntPriKeyPwd=self.__clntPriKeyPwd) 
    112         self.sessCookie = SimpleCookie(sSessCookie) 
     132                            pPhraseFilePath=self.config['userNamePPhrase'], 
     133                            clntPriKeyPwd=self.__clntPriKeyPwd) 
     134        self.sessCookie = SessionCookie(sSessCookie) 
    113135        print "User '%s' connected to Session Manager:\n%s" % \ 
    114136            (self.config['userName'], sSessCookie) 
     
    120142              
    121143        self.proxyCert = self.clnt.connect(self.config['userName'],  
    122                                       pPhraseFilePath="./tmp", 
     144                                      pPhrase=self.config['userNamePPhrase'], 
    123145                                      createServerSess=True, 
    124146                                      getCookie=False, 
     
    135157        # explicitly as a string use the 'pPhrase' keyword instead 
    136158        self.clnt.disconnect(self.sSessCookie) 
    137         print "User disconnected from Session Manager:\n%s" % \ 
    138             self.sSessCookie 
     159        print "User disconnected from Session Manager:\n%s" % self.sSessCookie 
    139160             
    140161 
     
    152173         
    153174        self.testCookieConnect() 
    154         authResp = self.clnt.reqAuthorisation(\ 
    155                     sessID=self.sessCookie['NDG-ID1'].value,  
    156                     aaURI=self.config['aaURI'], 
    157                     encrSessMgrWSDLuri=self.sessCookie['NDG-ID2'].value, 
    158                     clntPriKeyPwd=self.__clntPriKeyPwd) 
    159                                                                
    160         # The authorisation response is returned as an object which  
    161         # behaves like a python dictionary.  See  
    162         # ndg.security.SessionMgrIO.AuthorisationResp 
    163         if 'errMsg' in authResp: 
    164             print "Authorisation failed for user: %s" % authResp['errMsg']             
    165         else: 
    166             print "User authorised" 
    167              
    168         print authResp 
     175        resp = self.clnt.reqAuthorisation(\ 
     176                        sessID=self.sessCookie.sessionID,  
     177                        attAuthorityURI=self.config['aaURI'], 
     178                        encrSessionMgrURI=self.sessCookie.encrSessionMgrURI, 
     179                        clntPriKeyPwd=self.__clntPriKeyPwd) 
     180           
     181        print resp 
    169182 
    170183 
     
    176189        # Request an attribute certificate from an Attribute Authority  
    177190        # using the proxyCert returned from connect() 
    178         authResp = self.clnt.reqAuthorisation(\ 
    179                                      proxyCert=self.proxyCert, 
    180                                      aaURI=self.config['aaURI'], 
    181                                      clntPriKeyPwd=self.__clntPriKeyPwd) 
     191        resp = self.clnt.reqAuthorisation(proxyCert=self.proxyCert, 
     192                                         attAuthorityURI=self.config['aaURI'], 
     193                                         clntPriKeyPwd=self.__clntPriKeyPwd) 
    182194                                              
    183         print authResp 
    184  
    185  
    186     def testGetCert(self): 
    187         "testGetCert: return the Session Manager's public key" 
    188         cert = self.clnt.getCert() 
     195        print resp 
     196 
     197 
     198    def testGetX509Cert(self): 
     199        "testGetX509Cert: return the Session Manager's X.509 Cert." 
     200        cert = self.clnt.getX509Cert() 
    189201                                              
    190         print "Public Key:\n" + cert 
     202        print "Session Manager X.509 Certificate:\n" + cert 
    191203             
    192204             
     
    204216                    "testCookieReqAuthorisation", 
    205217                    "testProxyCertReqAuthorisation", 
    206                     "testGetCert", 
     218                    "testGetX509Cert", 
    207219                  )) 
    208220        unittest.TestSuite.__init__(self, map) 
Note: See TracChangeset for help on using the changeset viewer.