Ignore:
Timestamp:
28/11/08 12:22:42 (12 years ago)
Author:
pjkersha
Message:

Added local Session Manager call test to combined services unit tests.

Location:
TI12-security/trunk/python/ndg.security.server/ndg/security/server
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/utils/sessionmanagerclient.py

    r4501 r4513  
    159159     
    160160     
    161     def disconnect(self, userCert=None, sessID=None): 
     161    def disconnect(self, **kw): 
    162162        """Delete an existing user session from the Session Manager 
    163163         
    164         disconnect([userCert=c]|[sessID=i]) 
    165          
    166         @type userCert: string                  
    167         @param userCert: user's certificate used to identifier which session 
     164        disconnect([userX509Cert=c]|[sessID=i]) 
     165         
     166        @type userX509Cert: string                  
     167        @param userX509Cert: user's certificate used to identifier which session 
    168168        to disconnect.  This arg is not needed if the message is signed with 
    169169        the user cert or if sessID is set.   
    170170                                
    171171        @type sessID: string 
    172         @param sessID: session ID.  Input this as an alternative to userCert 
     172        @param sessID: session ID.  Input this as an alternative to userX509Cert 
    173173        This arg is not needed if the message is signed with the user cert or  
    174         if userCert keyword is.""" 
    175      
    176         if not self.__srv: 
    177             raise InvalidSessionManagerClientCtx("Client binding is not " 
    178                                                  "initialised") 
    179  
     174        if userX509Cert keyword is.""" 
     175     
    180176        # Make connection 
    181         self.__srv.disconnect(userCert, sessID) 
     177        self._soapClient.disconnect(**kw) 
     178         
    182179     
    183180    def getSessionStatus(self, userDN=None, sessID=None): 
     
    187184        disconnect([sessID=id]|[userDN=dn]) 
    188185         
    189         @type userCert: string                  
    190         @param userCert: user's certificate used to identifier which session 
     186        @type userX509Cert: string                  
     187        @param userX509Cert: user's certificate used to identifier which session 
    191188        to disconnect.  This arg is not needed if the message is signed with 
    192189        the user cert or if sessID is set.   
    193190                                
    194191        @type sessID: string 
    195         @param sessID: session ID.  Input this as an alternative to userCert 
     192        @param sessID: session ID.  Input this as an alternative to userX509Cert 
    196193        This arg is not needed if the message is signed with the user cert or  
    197         if userCert keyword is.""" 
    198      
    199         if not self.__srv: 
    200             raise InvalidSessionManagerClientCtx("Client binding is not " 
    201                                                  "initialised") 
    202          
    203         if sessID and userDN: 
    204             raise SessionManagerClientError( 
    205                             'Only "SessID" or "userDN" keywords may be set') 
    206              
    207         if not sessID and not userDN: 
    208             raise SessionManagerClientError( 
    209                             'A "SessID" or "userDN" keyword must be set')           
    210              
     194        if userX509Cert keyword is.""" 
     195     
    211196        # Make connection 
    212         return self.__srv.getSessionStatus(userDN, sessID) 
    213  
    214     def getAttCert(self, 
    215                    userCert=None, 
    216                    sessID=None, 
    217                    attAuthorityURI=None, 
    218                    reqRole=None, 
    219                    mapFromTrustedHosts=True, 
    220                    rtnExtAttCertList=False, 
    221                    extAttCertList=[], 
    222                    extTrustedHostList=[]):     
     197        return self._soapClient.getSessionStatus(**kw) 
     198 
     199    def getAttCert(self, **kw): 
    223200        """Request NDG Session Manager Web Service to retrieve an Attribute 
    224201        Certificate from the given Attribute Authority and cache it in the 
    225202        user's credential wallet held by the session manager. 
    226203         
    227         ac = getAttCert([sessID=i]|[userCert=p][key=arg, ...]) 
    228           
    229         @raise AttributeRequestDenied: this is raised if the request is  
    230         denied because the user is not registered with the Attribute  
    231         Authority.  In this case, a list of candidate attribute certificates 
    232         may be returned which could be used to retry with a request for a 
    233         mapped AC.  These are assigned to the raised exception's  
    234         extAttCertList attribute 
    235               
    236         @type userCert: string 
    237         @param userCert: user certificate - use as ID instead of session  
    238         ID.  This can be omitted if the message is signed with a user  
    239         certificate.  In this case the user certificate is passed in the  
    240         BinarySecurityToken of the WS-Security header 
    241          
    242         @type sessID: string 
    243         @param sessID: session ID.  Input this as an alternative to  
    244         userCert in the case of a browser client. 
    245          
    246         @type attAuthorityURI: string 
    247         @param attAuthorityURI: URI for Attribute Authority WS. 
    248          
    249         @type reqRole: string 
    250         @param reqRole: The required role for access to a data set.  This  
    251         can be left out in which case the Attribute Authority just returns  
    252         whatever Attribute Certificate it has for the user 
    253          
    254         @type mapFromTrustedHosts: bool 
    255         @param mapFromTrustedHosts: Allow a mapped Attribute Certificate to  
    256         be created from a user certificate from another trusted host. 
    257          
    258         @type rtnExtAttCertList: bool 
    259         @param rtnExtAttCertList: Set this flag True so that if the  
    260         attribute request is denied, a list of potential attribute  
    261         certificates for mapping may be returned.  
    262          
    263         @type extAttCertList: list 
    264         @param extAttCertList: A list of Attribute Certificates from other 
    265         trusted hosts from which the target Attribute Authority can make a  
    266         mapped certificate 
    267          
    268         @type extTrustedHostList: list 
    269         @param extTrustedHostList: A list of trusted hosts that can be used  
    270         to get Attribute Certificates for making a mapped AC. 
    271          
    272         @rtype: ndg.security.common.AttCert.AttCert 
    273         @return: if successful, an attribute certificate.""" 
    274      
    275         if not self.__srv: 
    276             raise InvalidSessionManagerClientCtx("Client binding is not " 
    277                                                  "initialised") 
    278          
    279         # Make request 
    280         try: 
    281             attCert, msg, extAttCertList = self.__srv.getAttCert(userCert, 
    282                                                            sessID,  
    283                                                            attAuthorityURI, 
    284                                                            reqRole, 
    285                                                            mapFromTrustedHosts, 
    286                                                            rtnExtAttCertList, 
    287                                                            extAttCertList, 
    288                                                            extTrustedHostList) 
    289         except Exception, e: 
    290             # Try to detect exception type from SOAP fault message 
    291             errMsg = str(e) 
    292             for excep in self.excepMap: 
    293                 if excep in errMsg: 
    294                     raise self.excepMap[excep] 
    295          
    296             # Catch all in case none of the known types matched 
    297             raise e 
    298          
    299         if not attCert: 
    300             raise AttributeRequestDenied(msg, extAttCertList=extAttCertList) 
    301          
    302         return AttCertParse(attCert) 
     204        """ 
     205        if self.sessionManagerInEnviron: 
     206            # Connect to local instance 
     207            res = self.sessionManager.getAttCert(username=username, **kw) 
     208        else: 
     209            # Filter out keywords which apply to a Session Manager local  
     210            # instance call 
     211            if 'userX509Cert' in kw: 
     212                 
     213             
     214     
     215           username=None, 
     216           userX509Cert=None, 
     217           sessID=None, 
     218           reqRole=None, 
     219           attributeAuthority=None, 
     220           attributeAuthorityURI=None, 
     221           mapFromTrustedHosts=None, 
     222           rtnExtAttCertList=None, 
     223           extAttCertList=None, 
     224           extTrustedHostList=None, 
     225           kw.pop('refreshAttCert', None) 
     226           kw.pop('attCertRefreshElapse', None) 
     227 
     228           userCert=None, 
     229           sessID=None, 
     230           attAuthorityURI=None, 
     231           reqRole=None, 
     232           mapFromTrustedHosts=True, 
     233           rtnExtAttCertList=False, 
     234           extAttCertList=[], 
     235           extTrustedHostList=[]):     
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/zsi/attributeauthority/AttributeAuthority_services_server.py

    r4386 r4513  
    3333          <xsd:sequence> 
    3434            <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"userId\" type=\"xsd:string\"/> 
    35             <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"userCert\" type=\"xsd:string\"/> 
     35            <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"userX509Cert\" type=\"xsd:string\"/> 
    3636            <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"userAttCert\" type=\"xsd:string\"/> 
    3737          </xsd:sequence> 
     
    253253    def soap_getAttCert(self, ps): 
    254254        self.request = ps.Parse(getAttCertInputMsg.typecode) 
    255         parameters = (self.request._userId, self.request._userCert, self.request._userAttCert) 
     255        parameters = (self.request._userId, self.request._userX509Cert, self.request._userAttCert) 
    256256 
    257257        # If we have an implementation object use it 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/zsi/attributeauthority/__init__.py

    r4479 r4513  
    7676        else: 
    7777            # No signature from client - they must instead provide the 
    78             # designated holder cert via the UserCert input 
    79             holderX509Cert = request.UserCert 
     78            # designated holder cert via the UserX509Cert input 
     79            holderX509Cert = request.UserX509Cert 
    8080 
    8181        try: 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/zsi/twisted/attributeauthority/attributeauthority.tac

    r4404 r4513  
    9393        else: 
    9494            # No signature from client - they must instead provide the 
    95             # designated holder cert via the UserCert input 
    96             holderCert = request.UserCert 
     95            # designated holder cert via the userX509Cert input 
     96            holderCert = request.UserX509Cert 
    9797 
    9898        try:     
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/zsi/twisted/sessionmanager/sessionmanager.tac

    r4404 r4513  
    9393                                                                 createServerSess=request.CreateServerSess) 
    9494                                         
    95         response.UserCert, response.UserPriKey, response.issuingCert, \ 
     95        response.UserX509Cert, response.UserPriKey, response.issuingCert, \ 
    9696                response.SessID = result 
    9797                          
     
    119119            # Get certificate corresponding to private key that signed the 
    120120            # message - i.e. the user's proxy 
    121             userCert = WSSecurityHandler.signatureHandler.verifyingCert 
     121            userX509Cert = WSSecurityHandler.signatureHandler.verifyingCert 
    122122        else: 
    123             userCert = request.UserCert 
    124  
    125         self.sm.deleteUserSession(sessID=sessID, userCert=userCert) 
     123            userX509Cert = request.UserX509Cert 
     124 
     125        self.sm.deleteUserSession(sessID=sessID, userX509Cert=UserX509Cert) 
    126126        return request, response 
    127127 
     
    167167            # Get certificate corresponding to private key that signed the 
    168168            # message - i.e. the user's proxy 
    169             userCert = WSSecurityHandler.signatureHandler.verifyingCert 
     169            userX509Cert = WSSecurityHandler.signatureHandler.verifyingCert 
    170170        else: 
    171             userCert = None 
    172          
    173                 # Cert used in signature is prefered over userCert input element -  
    174                 # userCert may have been omitted. 
     171            userX509Cert = None 
     172         
     173                # Cert used in signature is prefered over userX509Cert input element -  
     174                # userX509Cert may have been omitted. 
    175175        result = self.sm.getAttCert(\ 
    176                                             userCert=userCert or request.UserCert, 
     176                                            userX509Cert=userX509Cert or request.UserX509Cert, 
    177177                                                sessID=request.SessID, 
    178178                                                aaURI=request.AttAuthorityURI, 
Note: See TracChangeset for help on using the changeset viewer.