Changeset 970 for TI12-security


Ignore:
Timestamp:
22/05/06 09:38:21 (14 years ago)
Author:
pjkersha
Message:

Working version of Gatekeeper - supports basic access control: 3 WS methods supported:

matchingRole = readAccess(attCert)
matchingRole = writeAcess(attCert)
matchingRole = executeAccess(attCert)

In each case the roles contained in the attCert are checked. If one matches for the required
access, it is returned. The first matching one encountered is the one returned.

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

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/NDG/TestGatekeeperResrc.py

    r968 r970  
    3131        # In practice, roles and permissions may be derived from the resource 
    3232        # itself id'd by resrcID 
    33         self.__permissionsLUT = {'ecmwfop': ('r'), 'ecmwfopAdmin': ('r', 'w')} 
     33        self.__permissionsLUT = {    'ecmwfop': ('r'),  
     34                                     'ecmwfopAdmin': ('r', 'w'), 
     35                                     'pum': ('w', 'x')    } 
    3436     
    3537     
  • TI12-security/trunk/python/NDG/gatekeeper_services_server.py

    r968 r970  
    6262            # and return the corresponding role 
    6363            for role, bAccess in self.__srv.executeAccess(attCert).items():                 
    64                 if bAccess: break 
    65                  
    66             response._matchingRole = role 
     64                if bAccess:  
     65                    response._matchingRole = role 
     66                    break 
    6767                 
    6868        except Exception, e: 
     
    9595            # keyed by role name.  Find the first where access is True 
    9696            # and return the corresponding role 
    97             for role, bAccess in self.__srv.executeAccess(attCert).items():                 
    98                 if bAccess: break 
    99                  
    100             response._matchingRole = role 
     97            for role, bAccess in self.__srv.readAccess(attCert).items():                 
     98                if bAccess:  
     99                    response._matchingRole = role 
     100                    break 
    101101                 
    102102        except Exception, e: 
     
    129129            # keyed by role name.  Find the first where access is True 
    130130            # and return the corresponding role 
    131             for role, bAccess in self.__srv.executeAccess(attCert).items():                 
    132                 if bAccess: break 
    133                  
    134             response._matchingRole = role 
     131            for role, bAccess in self.__srv.writeAccess(attCert).items():                 
     132                if bAccess:  
     133                    response._matchingRole = role 
     134                    break 
    135135                 
    136136        except Exception, e: 
  • TI12-security/trunk/python/Tests/GatekeeperClientTest.py

    r968 r970  
    1616import os 
    1717import sys 
     18import glob 
    1819 
    1920from NDG.GatekeeperClient import * 
     
    2829                                           #traceFile=sys.stderr) 
    2930             
    30             self.attCertFilePath = 'ac-bFpx4Q.xml' #'./ac-y_i5fI.xml' 
     31            self.attCertFilePath = glob.glob('ac-*.xml')[0]  
    3132            self.sAttCert = open(self.attCertFilePath).read().strip() 
    3233            self.attCert = AttCertParse(self.sAttCert) 
     
    4344         
    4445        try: 
    45             print "Role for read access: %s" % \ 
     46            print "Role for read access: '%s'" % \ 
    4647                self.gkClnt.readAccess(attCertFilePath=self.attCertFilePath) 
    4748             
     
    5354         
    5455        try: 
    55             print "Role for write access: %s" % \ 
     56            print "Role for write access: '%s'" % \ 
    5657                self.gkClnt.writeAccess(self.sAttCert) 
    5758             
     
    6263    def testExecuteAccessForRapid(self): 
    6364         
    64         import pdb 
    65         pdb.set_trace() 
    6665        try: 
    67             print "Role for execute access: %s" % \ 
     66            print "Role for execute access: '%s'" % \ 
    6867                self.gkClnt.executeAccess(self.attCert) 
    6968             
  • TI12-security/trunk/python/Tests/GatekeeperTest.py

    r930 r970  
    1919 
    2020 
    21 class GkResrcURIinterface(GatekeeperResrcURI): 
     21class GkResrcinterface(GatekeeperResrc): 
    2222    """Gatekeeper interface test class""" 
    2323     
     
    3939    def setUp(self): 
    4040        try: 
    41             self.gk = Gatekeeper(resrcURI='somewhere', 
    42                                  resrcURImodFilePath='./GatekeeperTest.py', 
    43                                  resrcURImodName='GatekeeperTest', 
    44                                  resrcURIclassName='GkResrcURIinterface')  
     41            self.gk = Gatekeeper(resrcID='somewhere', 
     42                                 resrcModFilePath='./GatekeeperTest.py', 
     43                                 resrcModName='GatekeeperTest', 
     44                                 resrcClassName='GkResrcinterface')  
    4545        except Exception, e: 
    4646            self.fail(str(e)) 
     
    6666        try: 
    6767            self.gk.readProperties('gatekeeperProperties.xml') 
    68             self.gk.initResrcURIinterface() 
     68            self.gk.initResrcinterface() 
    6969             
    7070            print "Role List Permissions: %s" % self.gk(['nextmap', 'synop']) 
Note: See TracChangeset for help on using the changeset viewer.