Changeset 1783


Ignore:
Timestamp:
29/11/06 14:16:23 (13 years ago)
Author:
pjkersha
Message:

All Session Manager Client unit tests working with Session Manager service stub over https:

server/SessionMgr/server-config.tac
server/SessionMgr/SessionMgr_services_server.py
common/SessionMgr/SessionMgr_services.py
common/SessionMgr/SessionMgr_services_types.py
common/SessionMgr/init.py - added disconnect method to SessionMgrClient? class.

common/XMLSecDoc.py: comment out xmlsec for the moment. This module will need to be refactored
to use new digital signature code as used in WS-Security code tests.

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

Legend:

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

    r1777 r1783  
    2929        # no ws-addressing 
    3030 
    31     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6df750c> 
     31    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f429ac> 
    3232    def addUser(self, username,passPhrase): 
    3333 
     
    4343        return  
    4444 
    45     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6df798c> 
     45    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f42ccc> 
    4646    def connect(self, username,passPhrase,createServerSess,getCookie): 
    4747 
     
    6161        return cookie,proxyCert 
    6262 
    63     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6dfd26c> 
    64     def disconnect(self, cookie,proxyCert): 
     63    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f514ac> 
     64    def disconnect(self, proxyCert,sessID,encrSessionMgrURI): 
    6565 
    6666        request = disconnectInputMsg() 
    67         request._cookie = cookie 
    6867        request._proxyCert = proxyCert 
     68        request._sessID = sessID 
     69        request._encrSessionMgrURI = encrSessionMgrURI 
    6970 
    7071        kw = {} 
     
    7576        return  
    7677 
    77     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6dfd9ec> 
     78    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f51c0c> 
    7879    def reqAuthorisation(self, proxyCert,sessID,encrSessionMgrURI,attAuthorityURI,attAuthorityCert,reqRole,mapFromTrustedHosts,rtnExtAttCertList,extAttCert,extTrustedHost): 
    7980 
     
    100101        return attCert,statusCode,extAttCert 
    101102 
    102     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6dfdb6c> 
     103    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f51d8c> 
    103104    def getX509Cert(self): 
    104105 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/SessionMgr/SessionMgr_services_types.py

    r1777 r1783  
    121121        def __init__(self, **kw): 
    122122            ns = ns0.disconnect_Dec.schema 
    123             TClist = [ZSI.TC.String(pname="cookie", aname="_cookie", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="proxyCert", aname="_proxyCert", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] 
     123            TClist = [ZSI.TC.String(pname="proxyCert", aname="_proxyCert", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="sessID", aname="_sessID", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="encrSessionMgrURI", aname="_encrSessionMgrURI", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] 
    124124            kw["pname"] = ("urn:ndg:security","disconnect") 
    125125            kw["aname"] = "_disconnect" 
     
    131131                def __init__(self): 
    132132                    # pyclass 
    133                     self._cookie = None 
    134133                    self._proxyCert = None 
     134                    self._sessID = None 
     135                    self._encrSessionMgrURI = None 
    135136                    return 
    136137            Holder.__name__ = "disconnect_Holder" 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/SessionMgr/__init__.py

    r1777 r1783  
    211211    #_________________________________________________________________________ 
    212212    def addUser(self, 
    213                 userName, 
     213                username, 
    214214                pPhrase=None, 
    215215                pPhraseFilePath=None, 
     
    217217        """Register a new user 
    218218         
    219         userName:                the username for the new user  
     219        username:                the username for the new user  
    220220        pPhrase:                 user's pass-phrase 
    221221        pPhraseFilePath:         a file containing the user's pass-phrase.   
     
    297297            cookie, proxyCert = self.__srv.connect(userName,  
    298298                                                   pPhrase, 
    299                                                    getCookie, 
    300                                                    createServerSess) 
     299                                                   createServerSess, 
     300                                                   getCookie) 
    301301            if cookie: 
    302302                return cookie 
     
    313313                            "Error connecting to Session Manager: " + str(e) 
    314314     
     315         
     316    #_________________________________________________________________________    
     317    def disconnect(self, 
     318                   proxyCert=None, 
     319                   sessCookie=None, 
     320                   sessID=None, 
     321                   encrSessionMgrURI=None): 
     322        """Delete an existing user session from the Session Manager 
     323         
     324        disconnect([sessCookie=s]|[sessID=i, encrSessionMgrURI=e]| 
     325                   [proxyCert=p][key=arg, ...]) 
     326        proxyCert:             proxy certificate - use as ID instead of  
     327                               a cookie in the case of a command line client. 
     328        sessCookie:            session cookie returned from call to connect()  
     329                               for a browser client.  Input as a string or 
     330                               SimpleCookie type. 
     331        sessID:                session ID.  Input this as well as  
     332                               encrSessionMgrURI as an alternative to  
     333                               sessCookie in the case of a browser client. 
     334        encrSessionMgrURI:     encrypted Session Manager URI.""" 
     335 
     336        # Checking authentication details: either a proxy cert,  
     337        # session cookie, or session ID/encrypted Session Manager URI 
     338        # combination 
     339        if sessCookie: 
     340            if isinstance(sessCookie, basestring): 
     341                try: 
     342                    sessCookie = SessionCookie(sessCookie) 
     343                except Exception, e: 
     344                    raise SessionMgrClientError, \ 
     345                                    "Error parsing session cookie: " + str(e) 
     346 
     347            sessID = sessCookie.sessionID 
     348            encrSessionMgrURI = sessCookie.encrSessionMgrURI 
     349             
     350        elif not sessID and not encrSessionMgrURI and not proxyCert: 
     351            raise SessionMgrClientError, \ 
     352                '"proxyCert" or "sessCookie or "sessID" and ' + \ 
     353                '"encrSessionMgrURI" keywords must be set' 
     354 
     355        # If Public key was not set, retrieve from server 
     356        self.__getSessionMgrCert() 
     357 
     358 
     359        # Make connection 
     360        try:  
     361            self.__srv.disconnect(proxyCert, sessID, encrSessionMgrURI) 
     362                
     363        except Exception, e: 
     364            raise SessionMgrClientError, \ 
     365                        "Error disconnecting from Session Manager: " + str(e) 
     366    
    315367     
    316368    #_________________________________________________________________________  
     
    365417        """ 
    366418         
     419        # Checking authentication details: either a proxy cert,  
     420        # session cookie, or session ID/encrypted Session Manager URI 
     421        # combination 
    367422        if sessCookie: 
    368423            if isinstance(sessCookie, basestring): 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/XMLSecDoc.py

    r1771 r1783  
    2828 
    2929# xmlsec requires libxml2 
    30 import libxml2 
     30# Comment out until completed refactoring XML Sig to not use pyXMLSec 
     31#import libxml2 
    3132 
    3233# XML security module 
    33 import xmlsec         
     34# Comment out until completed refactoring XML Sig to not use pyXMLSec 
     35#import xmlsec         
    3436 
    3537 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/SessionMgr/SessionMgr_services_server.py

    r1777 r1783  
    5252        <xsd:complexType> 
    5353                  <xsd:sequence> 
    54                     <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"cookie\" type=\"xsd:string\"/> 
    5554                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"proxyCert\" type=\"xsd:string\"/> 
     55                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"sessID\" type=\"xsd:string\"/> 
     56                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"encrSessionMgrURI\" type=\"xsd:string\"/> 
    5657                  </xsd:sequence> 
    5758                </xsd:complexType> 
     
    301302    def soap_disconnect(self, ps): 
    302303        self.request = ps.Parse(disconnectInputMsg.typecode) 
    303         parameters = (self.request._cookie, self.request._proxyCert) 
    304  
    305         # If we have an implementation object use it 
    306         if hasattr(self,'impl'): 
    307             parameters = self.impl.disconnect(parameters[0],parameters[1]) 
     304        parameters = (self.request._proxyCert, self.request._sessID, self.request._encrSessionMgrURI) 
     305 
     306        # If we have an implementation object use it 
     307        if hasattr(self,'impl'): 
     308            parameters = self.impl.disconnect(parameters[0],parameters[1],parameters[2]) 
    308309 
    309310        result = disconnectOutputMsg() 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/SessionMgr/server-config.tac

    r1778 r1783  
    2424from ndg.security.server.SessionMgr import SessionMgr 
    2525 
     26# Use for stub testing only 
    2627from ndg.security.common.SessionCookie import SessionCookie 
    2728from datetime import datetime, timedelta 
     
    4243         #import pdb;pdb.set_trace() 
    4344         request, response = SessionMgrService.soap_connect(self, ps) 
    44          response.set_element_proxyCert('PROXY CERT') 
    45           
    46          dtExpiry = datetime.utcnow() + timedelta(seconds=60*60) 
    47          cookie = SessionCookie(ndgID1='9'*64,  
    48                                 ndgID2='0'*64, 
    49                                 dtExpiry=dtExpiry) 
    50           
    51          response.set_element_cookie(cookie) 
     45 
     46         if request.get_element_getCookie(): 
     47             dtExpiry = datetime.utcnow() + timedelta(seconds=60*60) 
     48             cookie = SessionCookie(ndgID1='9'*64,  
     49                                    ndgID2='0'*64, 
     50                                    dtExpiry=dtExpiry) 
     51             response.set_element_cookie(cookie) 
     52         else:  
     53             response.set_element_proxyCert('PROXY CERT') 
     54                          
    5255         return request, response 
    5356 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/SessionMgrClientTest.py

    r1781 r1783  
    141141        """testProxyCertConnect: Connect as a command line client -  
    142142        a proxyCert is returned""" 
    143               
     143 
    144144        self.proxyCert = self.clnt.connect(self.config['userName'],  
    145145                                      pPhrase=self.config['userNamePPhrase'], 
     
    155155        a cookie is returned""" 
    156156         
    157         # Note the pass-phrase is read from the file tmp.  To pass 
    158         # explicitly as a string use the 'pPhrase' keyword instead 
    159         self.clnt.disconnect(self.sSessCookie) 
    160         print "User disconnected from Session Manager:\n%s" % self.sSessCookie 
     157        self.testCookieConnect() 
     158         
     159        self.clnt.disconnect(sessCookie=str(self.sessCookie)) 
     160        print "User disconnected from Session Manager:\n%s" % self.sessCookie 
    161161             
    162162 
     
    164164        """testProxyCertDisconnect: Connect as a command line client -  
    165165        a proxyCert is returned""" 
    166               
    167         self.clnt.disconnect(self.proxyCert) 
    168         print "User '%s' connected to Session Manager:\n%s" % self.proxyCert 
     166         
     167        self.testProxyCertConnect() 
     168            
     169        self.clnt.disconnect(proxyCert=self.proxyCert) 
     170        print "User disconnected from Session Manager:\n%s" % self.proxyCert 
    169171 
    170172 
     
    214216    def testGetX509Cert(self): 
    215217        "testGetX509Cert: return the Session Manager's X.509 Cert." 
    216         #import pdb;pdb.set_trace() 
    217218        cert = self.clnt.getX509Cert() 
    218219                                              
  • TI12-security/trunk/python/www/html/sessionMgr.wsdl

    r1777 r1783  
    4949        <xsd:complexType> 
    5050                  <xsd:sequence> 
    51                     <xsd:element name="cookie" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    5251                    <xsd:element name="proxyCert" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     52                    <xsd:element name="sessID" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     53                    <xsd:element name="encrSessionMgrURI" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    5354                  </xsd:sequence> 
    5455                </xsd:complexType> 
     
    5859        <xsd:complexType/> 
    5960      </xsd:element> 
    60  
    61           <xsd:element name="attCert" type="xsd:string"/> 
    62           <xsd:element name="trustedHost" type="xsd:string"/> 
    6361       
    6462      <xsd:simpleType name="attCertList"> 
     
    8381                        <xsd:element name="extAttCert" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> 
    8482                        <xsd:element name="extTrustedHost" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> 
    85  
    86 <!-- Leave out list handling for now - use maxOccurs="unbounded" instead 
    87                         <xsd:element name="extAttCertList" type="tns:attCertList" minOccurs="0" maxOccurs="1"/> 
    88                         <xsd:element name="extTrustedHostList" type="tns:trustedHostList" minOccurs="0" maxOccurs="1"/> 
    89 --> 
    9083                  </xsd:sequence> 
    9184                </xsd:complexType> 
     
    9891                <xsd:element name="statusCode" type="xsd:string" minOccurs="1" maxOccurs="1"/> 
    9992                        <xsd:element name="extAttCert" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> 
    100 <!-- Leave out list handling for now - use maxOccurs="unbounded" instead 
    101                         <xsd:element name="extAttCertList" type="tns:attCertList" minOccurs="0" maxOccurs="1"/> 
    102 --> 
    10393              </xsd:sequence> 
    10494            </xsd:complexType> 
Note: See TracChangeset for help on using the changeset viewer.