Changeset 1773


Ignore:
Timestamp:
27/11/06 17:28:52 (13 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.

Location:
TI12-security/trunk/python
Files:
1 added
11 edited

Legend:

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

    r1749 r1773  
    2929        # no ws-addressing 
    3030 
    31     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f49b2c> 
    32     def addUser(self, username,passPhrase): 
     31    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f4f08c> 
     32    def addUser(self, username,passPhrase,createServerSess,getCookie): 
    3333 
    3434        request = addUserInputMsg() 
    3535        request._username = username 
    3636        request._passPhrase = passPhrase 
     37        request._createServerSess = createServerSess 
     38        request._getCookie = getCookie 
    3739 
    3840        kw = {} 
     
    4547        return cookie,proxyCert 
    4648 
    47     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f49e4c> 
    48     def connect(self, username,passPhrase): 
     49    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f4f3ac> 
     50    def connect(self, username,passPhrase,createServerSess,getCookie): 
    4951 
    5052        request = connectInputMsg() 
    5153        request._username = username 
    5254        request._passPhrase = passPhrase 
     55        request._createServerSess = createServerSess 
     56        request._getCookie = getCookie 
    5357 
    5458        kw = {} 
     
    6165        return cookie,proxyCert 
    6266 
    63     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f5080c> 
     67    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f4ff0c> 
    6468    def disconnect(self, cookie,proxyCert): 
    6569 
     
    7579        return  
    7680 
    77     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f509ac> 
    78     def reqAuthorisation(self, cookie,proxyCert): 
     81    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f600cc> 
     82    def reqAuthorisation(self, proxyCert,sessID,encrSessionMgrURI,attAuthorityURI,attAuthorityCert,reqRole,mapFromTrustedHosts,rtnExtAttCertList): 
    7983 
    8084        request = reqAuthorisationInputMsg() 
    81         request._cookie = cookie 
    8285        request._proxyCert = proxyCert 
     86        request._sessID = sessID 
     87        request._encrSessionMgrURI = encrSessionMgrURI 
     88        request._attAuthorityURI = attAuthorityURI 
     89        request._attAuthorityCert = attAuthorityCert 
     90        request._reqRole = reqRole 
     91        request._mapFromTrustedHosts = mapFromTrustedHosts 
     92        request._rtnExtAttCertList = rtnExtAttCertList 
    8393 
    8494        kw = {} 
     
    90100        return attCert 
    91101 
    92     # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f50b2c> 
    93     def getPubKey(self): 
     102    # op: <ZSI.wstools.WSDLTools.Message instance at 0xb6f6024c> 
     103    def getX509Cert(self): 
    94104 
    95         request = getPubKeyInputMsg() 
     105        request = getX509CertInputMsg() 
    96106 
    97107        kw = {} 
    98108        # no input wsaction 
    99         self.binding.Send(None, None, request, soapaction="getPubKey", **kw) 
     109        self.binding.Send(None, None, request, soapaction="getX509Cert", **kw) 
    100110        # no output wsaction 
    101         response = self.binding.Receive(getPubKeyOutputMsg.typecode) 
     111        response = self.binding.Receive(getX509CertOutputMsg.typecode) 
    102112        x509Cert = response._x509Cert 
    103113        return x509Cert 
     
    119129reqAuthorisationOutputMsg = ns0.reqAuthorisationResponse_Dec().pyclass 
    120130 
    121 getPubKeyInputMsg = ns0.getPubKey_Dec().pyclass 
     131getX509CertInputMsg = ns0.getX509Cert_Dec().pyclass 
    122132 
    123 getPubKeyOutputMsg = ns0.getPubKeyResponse_Dec().pyclass 
     133getX509CertOutputMsg = ns0.getX509CertResponse_Dec().pyclass 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/SessionMgr/SessionMgr_services_types.py

    r1749 r1773  
    6363        def __init__(self, **kw): 
    6464            ns = ns0.connect_Dec.schema 
    65             TClist = [ZSI.TC.String(pname="username", aname="_username", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="passPhrase", aname="_passPhrase", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] 
     65            TClist = [ZSI.TC.String(pname="username", aname="_username", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="passPhrase", aname="_passPhrase", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="createServerSess", aname="_createServerSess", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="getCookie", aname="_getCookie", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] 
    6666            kw["pname"] = ("urn:ndg:security","connect") 
    6767            kw["aname"] = "_connect" 
     
    7575                    self._username = None 
    7676                    self._passPhrase = None 
     77                    self._createServerSess = None 
     78                    self._getCookie = None 
    7779                    return 
    7880            Holder.__name__ = "connect_Holder" 
     
    145147        def __init__(self, **kw): 
    146148            ns = ns0.reqAuthorisation_Dec.schema 
    147             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"))] 
     149            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")), ZSI.TC.String(pname="attAuthorityURI", aname="_attAuthorityURI", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="attAuthorityCert", aname="_attAuthorityCert", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="reqRole", aname="_reqRole", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="mapFromTrustedHosts", aname="_mapFromTrustedHosts", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.Boolean(pname="rtnExtAttCertList", aname="_rtnExtAttCertList", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] 
    148150            kw["pname"] = ("urn:ndg:security","reqAuthorisation") 
    149151            kw["aname"] = "_reqAuthorisation" 
     
    155157                def __init__(self): 
    156158                    # pyclass 
    157                     self._cookie = None 
    158159                    self._proxyCert = None 
     160                    self._sessID = None 
     161                    self._encrSessionMgrURI = None 
     162                    self._attAuthorityURI = None 
     163                    self._attAuthorityCert = None 
     164                    self._reqRole = None 
     165                    self._mapFromTrustedHosts = None 
     166                    self._rtnExtAttCertList = None 
    159167                    return 
    160168            Holder.__name__ = "reqAuthorisation_Holder" 
     
    181189            self.pyclass = Holder 
    182190 
    183     class getPubKey_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration): 
    184         literal = "getPubKey" 
    185         schema = "urn:ndg:security" 
    186         def __init__(self, **kw): 
    187             ns = ns0.getPubKey_Dec.schema 
     191    class getX509Cert_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration): 
     192        literal = "getX509Cert" 
     193        schema = "urn:ndg:security" 
     194        def __init__(self, **kw): 
     195            ns = ns0.getX509Cert_Dec.schema 
    188196            TClist = [] 
    189             kw["pname"] = ("urn:ndg:security","getPubKey") 
    190             kw["aname"] = "_getPubKey" 
    191             self.attribute_typecode_dict = {} 
    192             ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw) 
    193             class Holder: 
    194                 __metaclass__ = pyclass_type 
    195                 typecode = self 
    196                 def __init__(self): 
    197                     # pyclass 
    198                     return 
    199             Holder.__name__ = "getPubKey_Holder" 
    200             self.pyclass = Holder 
    201  
    202     class getPubKeyResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration): 
    203         literal = "getPubKeyResponse" 
    204         schema = "urn:ndg:security" 
    205         def __init__(self, **kw): 
    206             ns = ns0.getPubKeyResponse_Dec.schema 
     197            kw["pname"] = ("urn:ndg:security","getX509Cert") 
     198            kw["aname"] = "_getX509Cert" 
     199            self.attribute_typecode_dict = {} 
     200            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw) 
     201            class Holder: 
     202                __metaclass__ = pyclass_type 
     203                typecode = self 
     204                def __init__(self): 
     205                    # pyclass 
     206                    return 
     207            Holder.__name__ = "getX509Cert_Holder" 
     208            self.pyclass = Holder 
     209 
     210    class getX509CertResponse_Dec(ZSI.TCcompound.ComplexType, ElementDeclaration): 
     211        literal = "getX509CertResponse" 
     212        schema = "urn:ndg:security" 
     213        def __init__(self, **kw): 
     214            ns = ns0.getX509CertResponse_Dec.schema 
    207215            TClist = [ZSI.TC.String(pname="x509Cert", aname="_x509Cert", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] 
    208             kw["pname"] = ("urn:ndg:security","getPubKeyResponse") 
    209             kw["aname"] = "_getPubKeyResponse" 
     216            kw["pname"] = ("urn:ndg:security","getX509CertResponse") 
     217            kw["aname"] = "_getX509CertResponse" 
    210218            self.attribute_typecode_dict = {} 
    211219            ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw) 
     
    217225                    self._x509Cert = None 
    218226                    return 
    219             Holder.__name__ = "getPubKeyResponse_Holder" 
     227            Holder.__name__ = "getX509CertResponse_Holder" 
    220228            self.pyclass = Holder 
    221229 
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/SessionMgr/__init__.py

    r1771 r1773  
    4545                 clntCertFilePath=None, 
    4646                 clntPriKeyFilePath=None, 
    47                  traceFile=None): 
     47                 tracefile=None): 
    4848        """ 
    4949        uri:                  WSDL URI for Session Manager WS.  Setting it  
     
    6060                                 is set, the private key is needed to decrypt  
    6161                                 the response from the Session Manager 
    62         traceFile:               set to file object such as sys.stderr to  
     62        tracefile:               set to file object such as sys.stderr to  
    6363                                 give extra WS debug information""" 
    6464 
     
    9292 
    9393            
    94         self.__traceFile = traceFile 
     94        self.__tracefile = tracefile 
    9595 
    9696          
     
    129129         
    130130        if not isinstance(clntCertFilePath, basestring): 
    131             raise SessionMgrClientError(\ 
    132                 "Client public key file path must be a valid string") 
     131            raise SessionMgrClientError, \ 
     132                "Client public key file path must be a valid string" 
    133133         
    134134        self.__clntCertFilePath = clntCertFilePath 
     
    323323                         mapFromTrustedHosts=None, 
    324324                         rtnExtAttCertList=None, 
    325                          extAttCertList=None, 
    326                          extTrustedHostList=None, 
     325                         extAttCertList=[], 
     326                         extTrustedHostList=[], 
    327327                         clntPriKeyPwd=None):     
    328328        """Request authorisation from NDG Session Manager Web Service. 
     
    404404                                     
    405405    #_________________________________________________________________________ 
    406     def getCert(self): 
     406    def getX509Cert(self): 
    407407        """Retrieve the public key of the Session Manager""" 
    408408         
    409409        try:    
    410             resp = self.__srv.getCert() 
     410            resp = self.__srv.getX509Cert() 
    411411            return resp 
    412412         
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/MyProxy.py

    r1638 r1773  
    4343try: 
    4444    # Using SimpleCA service local to current machine 
    45     from SimpleCA import * 
     45    from ca.SimpleCA import * 
    4646    simpleCAImport = True 
    4747    if simpleCAdebug: 
    48         print "NDG.SimpleCA loaded" 
     48        print "SimpleCA loaded" 
    4949     
    5050except ImportError, e: 
    5151    if simpleCAdebug: 
    52         print "Skipping NDG.SimpleCA: %s" % e 
     52        print "Skipping SimpleCA import: %s" % e 
    5353    pass 
    5454 
    5555try: 
    5656    # Local SimpleCA not needed - may be using Web Service instead 
    57     from SimpleCAClient import * 
     57    from ndg.security.common.ca.SimpleCAClient import * 
    5858    simpleCAImport = True 
    5959    if simpleCAdebug: 
    60         print "NDG.SimpleCAClient loaded" 
     60        print "SimpleCAClient loaded" 
    6161     
    6262except ImportError, e: 
    6363    if simpleCAdebug: 
    64         print "Skipping NDG.SimpleCAClient: %s" % e 
     64        print "Skipping SimpleCAClient import: %s" % e 
    6565    pass 
    6666 
    6767if not simpleCAImport: 
    68     raise ImportError(\ 
    69         "Either SimpleCA or SimpleCAClient module must be present") 
     68    raise ImportError, \ 
     69        "Either SimpleCA or SimpleCAClient module must be present for MyProxy" 
    7070 
    7171 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/SessionMgr/README

    r1747 r1773  
    55 
    66SessionMgrService soap_* methods modified to return request 
    7 and result to fit with interface to Twisted. 
     7and result to fit with interface to Twisted: 
     8 
     9return self.request, result 
     10 
     11Import SessionMgr_services from ndg.security.common. 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/SessionMgr/SessionMgr_services_server.py

    r1747 r1773  
    55################################################## 
    66 
    7 from SessionMgr_services import * 
     7from ndg.security.common.SessionMgr.SessionMgr_services import * 
    88from ZSI.ServiceContainer import ServiceSOAPBinding 
    99 
     
    3434            <xsd:element maxOccurs=\"1\" minOccurs=\"1\" name=\"username\" type=\"xsd:string\"/> 
    3535            <xsd:element maxOccurs=\"1\" minOccurs=\"1\" name=\"passPhrase\" type=\"xsd:string\"/> 
     36                    <xsd:element maxOccurs=\"1\" minOccurs=\"1\" name=\"createServerSess\" type=\"xsd:boolean\"/> 
     37                    <xsd:element maxOccurs=\"1\" minOccurs=\"1\" name=\"getCookie\" type=\"xsd:boolean\"/> 
    3638          </xsd:sequence> 
    3739        </xsd:complexType> 
     
    6365        <xsd:complexType> 
    6466                  <xsd:sequence> 
    65                     <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"cookie\" type=\"xsd:string\"/> 
    6667                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"proxyCert\" type=\"xsd:string\"/> 
    67                   </xsd:sequence> 
     68                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"sessID\" type=\"xsd:string\"/> 
     69                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"encrSessionMgrURI\" type=\"xsd:string\"/> 
     70                    <xsd:element maxOccurs=\"1\" minOccurs=\"1\" name=\"attAuthorityURI\" type=\"xsd:string\"/> 
     71                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"attAuthorityCert\" type=\"xsd:string\"/> 
     72                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"reqRole\" type=\"xsd:string\"/> 
     73                    <xsd:element maxOccurs=\"1\" minOccurs=\"1\" name=\"mapFromTrustedHosts\" type=\"xsd:boolean\"/> 
     74                    <xsd:element maxOccurs=\"1\" minOccurs=\"1\" name=\"rtnExtAttCertList\" type=\"xsd:boolean\"/> 
     75                    <xsd:simpleType name=\"extAttCertList\"> 
     76                          <xsd:list itemType=\"xsd:string\"/> 
     77                        </xsd:simpleType> 
     78                    <xsd:simpleType name=\"extTrustedHostList\"> 
     79                          <xsd:list itemType=\"xsd:string\"/> 
     80                        </xsd:simpleType> 
     81                  </xsd:sequence> 
    6882                </xsd:complexType> 
    6983      </xsd:element> 
     
    7791      </xsd:element> 
    7892 
    79       <xsd:element name=\"getPubKey\"> 
     93      <xsd:element name=\"getX509Cert\"> 
    8094        <xsd:complexType/> 
    8195      </xsd:element> 
    8296       
    83       <xsd:element name=\"getPubKeyResponse\"> 
     97      <xsd:element name=\"getX509CertResponse\"> 
    8498        <xsd:complexType> 
    8599                  <xsd:sequence> 
     
    124138  </message> 
    125139 
    126   <message name=\"getPubKeyInputMsg\"> 
    127     <part element=\"tns:getPubKey\" name=\"parameters\"/> 
    128   </message> 
    129  
    130   <message name=\"getPubKeyOutputMsg\"> 
    131     <part element=\"tns:getPubKeyResponse\" name=\"parameters\"/> 
     140  <message name=\"getX509CertInputMsg\"> 
     141    <part element=\"tns:getX509Cert\" name=\"parameters\"/> 
     142  </message> 
     143 
     144  <message name=\"getX509CertOutputMsg\"> 
     145    <part element=\"tns:getX509CertResponse\" name=\"parameters\"/> 
    132146  </message> 
    133147 
     
    153167    </operation> 
    154168 
    155     <operation name=\"getPubKey\"> 
    156       <wsdl:input message=\"tns:getPubKeyInputMsg\"/> 
    157       <wsdl:output message=\"tns:getPubKeyOutputMsg\"/> 
     169    <operation name=\"getX509Cert\"> 
     170      <wsdl:input message=\"tns:getX509CertInputMsg\"/> 
     171      <wsdl:output message=\"tns:getX509CertOutputMsg\"/> 
    158172    </operation> 
    159173  </wsdl:portType>   
     
    202216    </operation> 
    203217 
    204     <operation name=\"getPubKey\"> 
    205       <soap:operation soapAction=\"getPubKey\"/> 
     218    <operation name=\"getX509Cert\"> 
     219      <soap:operation soapAction=\"getX509Cert\"/> 
    206220      <wsdl:input> 
    207221        <soap:body use=\"literal\"/> 
     
    237251    def soap_addUser(self, ps): 
    238252        self.request = ps.Parse(addUserInputMsg.typecode) 
    239         parameters = (self.request._username, self.request._passPhrase) 
    240  
    241         # If we have an implementation object use it 
    242         if hasattr(self,'impl'): 
    243             parameters = self.impl.addUser(parameters[0],parameters[1]) 
     253        parameters = (self.request._username, self.request._passPhrase, self.request._createServerSess, self.request._getCookie) 
     254 
     255        # If we have an implementation object use it 
     256        if hasattr(self,'impl'): 
     257            parameters = self.impl.addUser(parameters[0],parameters[1],parameters[2],parameters[3]) 
    244258 
    245259        result = addUserOutputMsg() 
     
    256270    def soap_connect(self, ps): 
    257271        self.request = ps.Parse(connectInputMsg.typecode) 
    258         parameters = (self.request._username, self.request._passPhrase) 
    259  
    260         # If we have an implementation object use it 
    261         if hasattr(self,'impl'): 
    262             parameters = self.impl.connect(parameters[0],parameters[1]) 
     272        parameters = (self.request._username, self.request._passPhrase, self.request._createServerSess, self.request._getCookie) 
     273 
     274        # If we have an implementation object use it 
     275        if hasattr(self,'impl'): 
     276            parameters = self.impl.connect(parameters[0],parameters[1],parameters[2],parameters[3]) 
    263277 
    264278        result = connectOutputMsg() 
     
    289303    def soap_reqAuthorisation(self, ps): 
    290304        self.request = ps.Parse(reqAuthorisationInputMsg.typecode) 
    291         parameters = (self.request._cookie, self.request._proxyCert) 
    292  
    293         # If we have an implementation object use it 
    294         if hasattr(self,'impl'): 
    295             parameters = self.impl.reqAuthorisation(parameters[0],parameters[1]) 
     305        parameters = (self.request._proxyCert, self.request._sessID, self.request._encrSessionMgrURI, self.request._attAuthorityURI, self.request._attAuthorityCert, self.request._reqRole, self.request._mapFromTrustedHosts, self.request._rtnExtAttCertList) 
     306 
     307        # If we have an implementation object use it 
     308        if hasattr(self,'impl'): 
     309            parameters = self.impl.reqAuthorisation(parameters[0],parameters[1],parameters[2],parameters[3],parameters[4],parameters[5],parameters[6],parameters[7]) 
    296310 
    297311        result = reqAuthorisationOutputMsg() 
     
    304318    root[(reqAuthorisationInputMsg.typecode.nspname,reqAuthorisationInputMsg.typecode.pname)] = 'soap_reqAuthorisation' 
    305319 
    306     def soap_getPubKey(self, ps): 
    307         self.request = ps.Parse(getPubKeyInputMsg.typecode) 
    308  
    309         # If we have an implementation object use it 
    310         if hasattr(self,'impl'): 
    311             parameters = self.impl.getPubKey() 
    312  
    313         result = getPubKeyOutputMsg() 
     320    def soap_getX509Cert(self, ps): 
     321        self.request = ps.Parse(getX509CertInputMsg.typecode) 
     322 
     323        # If we have an implementation object use it 
     324        if hasattr(self,'impl'): 
     325            parameters = self.impl.getX509Cert() 
     326 
     327        result = getX509CertOutputMsg() 
    314328        # If we have an implementation object, copy the result  
    315329        if hasattr(self,'impl'): 
     
    317331        return self.request, result 
    318332 
    319     soapAction['getPubKey'] = 'soap_getPubKey' 
    320     root[(getPubKeyInputMsg.typecode.nspname,getPubKeyInputMsg.typecode.pname)] = 'soap_getPubKey' 
    321  
     333    soapAction['getX509Cert'] = 'soap_getX509Cert' 
     334    root[(getX509CertInputMsg.typecode.nspname,getX509CertInputMsg.typecode.pname)] = 'soap_getX509Cert' 
     335 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/SessionMgr/__init__.py

    r1771 r1773  
    1414reposID = '$Id$' 
    1515 
    16 # Placing of session ID on client 
    17 from Cookie import SimpleCookie 
    18  
    1916# Time module for use with cookie expiry 
    2017from time import strftime 
     
    3532 
    3633# Credential Wallet 
    37 from NDG.CredWallet import * 
     34from ndg.security.common.CredWallet import * 
    3835 
    3936# MyProxy server interface 
    40 from NDG.MyProxy import * 
    41  
    42 # Tools for interfacing with SessionMgr WS 
    43 from NDG.SessionMgrIO import * 
    44  
    45 # SessionMgr.reqAuthorisation - getPubKey WS call.  Don't import  
    46 # AttAuthorityIO's namespace as it would conflict with SessionMgrIO's 
    47 from NDG import AttAuthorityIO 
     37from ndg.security.server.MyProxy import * 
    4838 
    4939# Use client package to allow redirection of authorisation requests and  
    5040# to retrieve Attribute Authority public key 
    51 from NDG.SecurityClient import * 
     41from ndg.security.common.SessionMgr import SessionMgrClient 
     42 
     43# Placing of session ID on client 
     44from ndg.security.common.SessionCookie import SessionCookie 
    5245 
    5346# Use in SessionMgr __redirectAuthorisationReq to retrieve and store Public  
     
    207200        asString:              Set to True to return the cookie as string  
    208201                               text.  If False, it is returned as a  
    209                                SimpleCookie instance.""" 
     202                               SessionCookie instance.""" 
    210203           
    211204        if sessID is None: 
     
    229222        cookieTagsKw[cookieTags[1]] = encrSessMgrWSDLuri 
    230223         
    231         return str(SessionCookie(dtExpiry=dtExpiry, 
     224        sessCookie = SessionCookie(dtExpiry=dtExpiry, 
    232225                                 cookieDomain=cookieDomain, 
    233                                  **cookieTagsKw)) 
     226                                 **cookieTagsKw) 
     227        if asString: 
     228            return str(sessCookie) 
     229        else: 
     230            return sessCookie 
    234231     
    235232 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/SessionMgr/server-config.tac

    r1750 r1773  
    2222 
    2323from SessionMgr_services_server import SessionMgrService 
    24 import SessionMgr 
     24from ndg.security.server.SessionMgr import SessionMgr 
    2525 
    2626class SessionMgrServiceSub(SessionMgrService, WSResource): 
     
    2929          
    3030         # Initialize Attribute Authority class 
    31          #self.__sm = SessionMgr() 
     31         self.__sm = SessionMgr() 
    3232 
    3333     def soap_addUser(self, ps, **kw): 
     
    4343     def soap_disconnect(self, ps, **kw): 
    4444         #import pdb;pdb.set_trace() 
    45          request, response = \ 
    46                 SessionMgrService.soap_disconnect(self, ps) 
     45         request, response = SessionMgrService.soap_disconnect(self, ps) 
    4746         return request, response 
    4847 
    4948     def soap_reqAuthorisation(self, ps, **kw): 
    5049         #import pdb;pdb.set_trace() 
    51          request, response = \ 
    52                 SessionMgrService.soap_reqAuthorisation(self, ps) 
     50         request, response = SessionMgrService.soap_reqAuthorisation(self, ps) 
    5351         return request, response 
    5452 
    55      def soap_getPubKey(self, ps, **kw): 
     53     def soap_getX509Cert(self, ps, **kw): 
    5654         #import pdb;pdb.set_trace() 
    57          request, response = SessionMgrService.soap_getPubKey(self, ps) 
     55         request, response = SessionMgrService.soap_getX509Cert(self, ps) 
    5856         response.set_element_x509Cert('X.509 Cert.') 
    5957         return request, response 
  • 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) 
  • TI12-security/trunk/python/www/html/attAuthority.wsdl

    r1743 r1773  
    5656      </xsd:element> 
    5757 
    58       <xsd:element name="getPubKey"> 
     58      <xsd:element name="getX509Cert"> 
    5959        <xsd:complexType/> 
    6060      </xsd:element> 
    61       <xsd:element name="getPubKeyResponse"> 
     61      <xsd:element name="getX509CertResponse"> 
    6262        <xsd:complexType> 
    63           <xsd:sequence> 
    64             <xsd:element name="x509Cert" type="xsd:string"/> 
    65           </xsd:sequence> 
    66         </xsd:complexType> 
     63                  <xsd:sequence> 
     64                    <xsd:element name="x509Cert" type="xsd:string" minOccurs="1" maxOccurs="1"/> 
     65                  </xsd:sequence> 
     66                </xsd:complexType> 
    6767      </xsd:element> 
    6868 
     
    118118    </operation> 
    119119 
    120     <operation name="getPubKey"> 
    121       <wsdl:input message="tns:getPubKeyInputMsg"/> 
    122       <output message="tns:getPubKeyOutputMsg"/> 
     120    <operation name="getX509Cert"> 
     121      <wsdl:input message="tns:getX509CertInputMsg"/> 
     122      <output message="tns:getX509CertOutputMsg"/> 
    123123    </operation> 
    124124  </wsdl:portType> 
  • TI12-security/trunk/python/www/html/sessionMgr.wsdl

    r1770 r1773  
    2929        <xsd:complexType> 
    3030          <xsd:sequence> 
    31             <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    32             <xsd:element name="passPhrase" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    33                     <xsd:element name="createServerSess" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    34                     <xsd:element name="getCookie" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     31            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1"/> 
     32            <xsd:element name="passPhrase" type="xsd:string" minOccurs="1" maxOccurs="1"/> 
     33                    <xsd:element name="createServerSess" type="xsd:boolean" minOccurs="1" maxOccurs="1"/> 
     34                    <xsd:element name="getCookie" type="xsd:boolean" minOccurs="1" maxOccurs="1"/> 
    3535          </xsd:sequence> 
    3636        </xsd:complexType> 
     
    6464                    <xsd:element name="proxyCert" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    6565                    <xsd:element name="sessID" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    66                     <xsd:element name="encrSessMgrURI" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    67                     <xsd:element name="attAuthorityURI" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     66                    <xsd:element name="encrSessionMgrURI" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     67                    <xsd:element name="attAuthorityURI" type="xsd:string" minOccurs="1" maxOccurs="1"/> 
    6868                    <xsd:element name="attAuthorityCert" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    6969                    <xsd:element name="reqRole" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    70                     <xsd:element name="mapFromTrustedHosts" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    71                     <xsd:element name="rtnExtAttCertList" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    72                     <xsd:element name="extAttCertList" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
    73                     <xsd:element name="extTrustedHostList" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     70                    <xsd:element name="mapFromTrustedHosts" type="xsd:boolean" minOccurs="1" maxOccurs="1"/> 
     71                    <xsd:element name="rtnExtAttCertList" type="xsd:boolean" minOccurs="1" maxOccurs="1"/> 
     72                    <xsd:simpleType name="extAttCertList"> 
     73                          <xsd:list itemType="xsd:string"/> 
     74                        </xsd:simpleType> 
     75                    <xsd:simpleType name="extTrustedHostList"> 
     76                          <xsd:list itemType="xsd:string"/> 
     77                        </xsd:simpleType> 
    7478                  </xsd:sequence> 
    7579                </xsd:complexType> 
     
    8488      </xsd:element> 
    8589 
    86       <xsd:element name="getPubKey"> 
     90      <xsd:element name="getX509Cert"> 
    8791        <xsd:complexType/> 
    8892      </xsd:element> 
    8993       
    90       <xsd:element name="getPubKeyResponse"> 
     94      <xsd:element name="getX509CertResponse"> 
    9195        <xsd:complexType> 
    9296                  <xsd:sequence> 
     
    131135  </message> 
    132136 
    133   <message name="getPubKeyInputMsg"> 
    134     <part name="parameters" element="tns:getPubKey"/> 
    135   </message> 
    136  
    137   <message name="getPubKeyOutputMsg"> 
    138     <part name="parameters" element="tns:getPubKeyResponse"/> 
     137  <message name="getX509CertInputMsg"> 
     138    <part name="parameters" element="tns:getX509Cert"/> 
     139  </message> 
     140 
     141  <message name="getX509CertOutputMsg"> 
     142    <part name="parameters" element="tns:getX509CertResponse"/> 
    139143  </message> 
    140144 
     
    160164    </operation> 
    161165 
    162     <operation name="getPubKey"> 
    163       <wsdl:input message="tns:getPubKeyInputMsg"/> 
    164       <wsdl:output message="tns:getPubKeyOutputMsg"/> 
     166    <operation name="getX509Cert"> 
     167      <wsdl:input message="tns:getX509CertInputMsg"/> 
     168      <wsdl:output message="tns:getX509CertOutputMsg"/> 
    165169    </operation> 
    166170  </wsdl:portType>   
     
    211215    </operation> 
    212216 
    213     <operation name="getPubKey"> 
    214       <soap:operation soapAction="getPubKey"/> 
     217    <operation name="getX509Cert"> 
     218      <soap:operation soapAction="getX509Cert"/> 
    215219      <wsdl:input> 
    216220        <soap:body use="literal"/> 
Note: See TracChangeset for help on using the changeset viewer.