Changeset 3041


Ignore:
Timestamp:
22/11/07 16:06:49 (12 years ago)
Author:
pjkersha
Message:

python/ndg.security.server/ndg/security/server/conf/sessionMgr.tac: removed soap_addUser - no longer needed

python/ndg.security.server/ndg/security/server/SessionMgr/init.py: fix to SessionMgr?.readProperties error msg

python/ndg.security.test/ndg/security/test/sessionMgr/test.py: ongoing implementation - getSessionStatus test now works.

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

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/SessionMgr/__init__.py

    r3024 r3041  
    621621                raise SessionMgrError, \ 
    622622                    "Error parsing properties file: \"%s\": %s" % \ 
    623                     (propFilePath, e) 
     623                    (self.__propFilePath, e) 
    624624 
    625625        if propElem is None: 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/conf/sessionMgr.tac

    r2948 r3041  
    7373        WSResource.__init__(self)  
    7474        self.sm = SessionMgr() 
    75  
    76  
    77     def soap_addUser(self, ps, **kw): 
    78         '''Add a new user account 
    79          
    80         @type ps: ZSI ParsedSoap 
    81         @param ps: client SOAP message 
    82         @rtype: tuple 
    83         @return: request and response objects''' 
    84  
    85         request, response = SessionMgrService.soap_addUser(self, ps) 
    86         return request, response 
    8775 
    8876 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/sessionMgr/test.py

    r3040 r3041  
    1919from ConfigParser import SafeConfigParser 
    2020 
     21from ndg.security.common.X509 import X509CertParse 
    2122from ndg.security.server.SessionMgr import * 
    2223     
     
    3637        self.cfg.read("./sessionMgrTest.cfg") 
    3738         
     39        os.environ['NDGSEC_SM_UNITTEST_DIR'] = \ 
     40            os.path.expandvars(self.cfg.get('setUp',  
     41                                            'NDGSEC_SM_UNITTEST_DIR')) 
    3842             
    3943        # Initialise the Session Manager client connection 
     
    4145        self.sm = SessionMgr(propFilePath=self.cfg.get('setUp',  
    4246                                                       'propFilePath')) 
    43          
     47        if 'NDGSEC_INT_DEBUG' in os.environ: 
     48            import pdb 
     49            pdb.set_trace() 
     50                                   
    4451    def test1Connect(self): 
    4552        """test1Connect: make a new session""" 
    4653         
    47         if self.__class__.test2Passphrase is None: 
    48             self.__class__.test2Passphrase = \ 
     54        if SessionMgrTestCase.test2Passphrase is None: 
     55            SessionMgrTestCase.test2Passphrase = \ 
    4956                                    self.cfg.get('test1Connect', 'passphrase') 
    5057         
    51         if not self.__class__.test2Passphrase: 
    52             self.__class__.test2Passphrase = getpass.getpass(\ 
     58        if not SessionMgrTestCase.test2Passphrase: 
     59            SessionMgrTestCase.test2Passphrase = getpass.getpass(\ 
    5360                               prompt="\ntest1Connect pass-phrase for user: ") 
    5461 
    55         self.proxyCert, self.proxyPriKey, self.userCert, self.sessID = \ 
    56             self.clnt.connect(self.cfg.get('test1Connect', 'username'),  
    57                               passphrase=self.__class__.test2Passphrase) 
    58  
     62        proxyCert, self.proxyPriKey, self.userCert, self.sessID = \ 
     63            self.sm.connect(username=self.cfg.get('test1Connect', 'username'),  
     64                            passphrase=SessionMgrTestCase.test2Passphrase) 
     65        self.proxyCert = X509CertParse(proxyCert) 
     66         
    5967        print "User '%s' connected to Session Manager:\n%s" % \ 
    6068            (self.cfg.get('test1Connect', 'username'), self.sessID) 
     
    6270    def test2GetSessionStatus(self): 
    6371        """test2GetSessionStatus: check a session is alive""" 
     72        self.test1Connect() 
     73        assert self.sm.getSessionStatus(sessID=self.sessID), "Session is dead" 
     74        print "User connected to Session Manager with sessID=%s" % self.sessID 
     75 
     76        assert not self.sm.getSessionStatus(sessID='abc'), \ 
     77            "sessID=abc shouldn't exist!" 
     78             
     79        print "CORRECT: sessID=abc doesn't exist" 
    6480         
    6581    def test3ConnectNoCreateServerSess(self): 
     
    6783        sessID should be None""" 
    6884 
    69         if self.__class__.test3Passphrase is None: 
    70             self.__class__.test3Passphrase = \ 
     85        if SessionMgrTestCase.test3Passphrase is None: 
     86            SessionMgrTestCase.test3Passphrase = \ 
    7187                self.cfg.get('test3ConnectNoCreateServerSess', 'passphrase') 
    7288                 
    73         if not self.__class__.test3Passphrase: 
    74             self.__class__.test3Passphrase = getpass.getpass(\ 
     89        if not SessionMgrTestCase.test3Passphrase: 
     90            SessionMgrTestCase.test3Passphrase = getpass.getpass(\ 
    7591            prompt="\ntest3ConnectNoCreateServerSess pass-phrase for user: ") 
    7692 
     93        username = self.cfg.get('test3ConnectNoCreateServerSess', 'username') 
    7794        self.proxyCert, self.proxyPriKey, self.userCert, sessID = \ 
    78             self.clnt.connect(\ 
    79                   self.cfg.get('test3ConnectNoCreateServerSess', 'username'),  
    80                   passphrase=self.__class__.test3Passphrase, 
    81                   createServerSess=False) 
     95            self.sm.connect(username=username,  
     96                            passphrase=SessionMgrTestCase.test3Passphrase, 
     97                            createServerSess=False) 
    8298         
    8399        # Expect null session ID 
    84         assert(not sessID) 
     100        assert not sessID, "Expecting a null session ID!" 
    85101           
    86102        print "User '%s' connected to Session Manager:\n%s" % \ 
     
    94110         
    95111        print "\n\t" + self.test4DisconnectUsingSessID.__doc__ 
    96         self.test1Connect() 
    97          
    98         self.clnt.disconnect(sessID=self.sessID) 
     112        self.test1Connect()         
     113        self.sm.deleteUserSession(sessID=self.sessID) 
    99114         
    100115        print "User disconnected from Session Manager:\n%s" % self.sessID 
     
    108123        self.test1Connect() 
    109124         
    110         # Use proxy cert / private key just obtained from connect call for 
    111         # signature generation          
    112         self.clnt.signatureHandler.reqBinSecTokValType = 'X509PKIPathv1' 
    113         self.clnt.signatureHandler.signingPriKey = self.proxyPriKey         
    114         self.clnt.signatureHandler.signingCertChain = (self.userCert, 
    115                                                        self.proxyCert) 
    116          
    117125        # Proxy cert in signature determines ID of session to 
    118126        # delete 
    119         self.clnt.disconnect() 
     127        self.sm.deleteUserSession(proxyCert=self.proxyCert) 
    120128        print "User disconnected from Session Manager:\n%s" % self.proxyCert 
    121129 
     
    128136        self.test1Connect() 
    129137         
    130         attCert = self.clnt.getAttCert(\ 
     138        attCert = self.sm.getAttCert(\ 
    131139            sessID=self.sessID,  
    132             attAuthorityURI=self.cfg.get('test6GetAttCertUsingSessID', 'aauri')) 
     140            aaURI=self.cfg.get('test6GetAttCertUsingSessID', 'aauri')) 
    133141         
    134142        print "Attribute Certificate:\n%s" % attCert  
     
    148156        aaURI = self.cfg.get('test6aGetAttCertRefusedUsingSessID', 'aauri') 
    149157         
    150         try: 
    151             attCert = self.clnt.getAttCert(sessID=self.sessID,  
    152                                            attAuthorityURI=aaURI, 
    153                                            mapFromTrustedHosts=False) 
    154         except AttributeRequestDenied, e: 
    155             print "SUCCESS - obtained expected result: %s" % e 
     158        attCert, errMsg, e.extAttCertList = self.sm.getAttCert(sessID=self.sessID,  
     159                                         aaURI=aaURI, 
     160                                         mapFromTrustedHosts=False) 
     161        if errMsg: 
     162            print "SUCCESS - obtained expected result: %s" % errMsg 
    156163            return 
    157164         
     
    168175        aaURI = self.cfg.get('test6bGetMappedAttCertUsingSessID', 'aauri') 
    169176         
    170         attCert=self.clnt.getAttCert(sessID=self.sessID,attAuthorityURI=aaURI) 
     177        attCert=self.sm.getAttCert(sessID=self.sessID,attAuthorityURI=aaURI) 
    171178         
    172179        print "Attribute Certificate:\n%s" % attCert   
     
    189196        extAttCert = open(extACFilePath).read() 
    190197         
    191         attCert = self.clnt.getAttCert(sessID=self.sessID,  
     198        attCert = self.sm.getAttCert(sessID=self.sessID,  
    192199                                       attAuthorityURI=aaURI, 
    193200                                       extAttCertList=[extAttCert]) 
     
    202209        self.test1Connect() 
    203210 
    204         self.clnt.signatureHandler.reqBinSecTokValType = 'X509PKIPathv1' 
    205         self.clnt.signatureHandler.signingPriKey = self.proxyPriKey         
    206         self.clnt.signatureHandler.signingCertChain = (self.userCert, 
     211        self.sm.signatureHandler.reqBinSecTokValType = 'X509PKIPathv1' 
     212        self.sm.signatureHandler.signingPriKey = self.proxyPriKey         
     213        self.sm.signatureHandler.signingCertChain = (self.userCert, 
    207214                                                       self.proxyCert) 
    208215         
     
    211218         
    212219        aaURI = self.cfg.get('test7GetAttCertUsingProxyCert', 'aauri') 
    213         attCert = self.clnt.getAttCert(attAuthorityURI=aaURI) 
     220        attCert = self.sm.getAttCert(attAuthorityURI=aaURI) 
    214221           
    215222        print "Attribute Certificate:\n%s" % attCert   
     
    223230                  ( 
    224231                    "test1Connect", 
     232                    "test2GetSessionStatus", 
    225233                    "test3ConnectNoCreateServerSess", 
    226234                    "test4DisconnectUsingSessID", 
Note: See TracChangeset for help on using the changeset viewer.