Changeset 3856 for TI02-CSML


Ignore:
Timestamp:
07/05/08 10:31:35 (11 years ago)
Author:
domlowe
Message:

Adding security options back in to scanner

Location:
TI02-CSML/trunk/csml
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/csml/csmllibs/csmlbuilder.py

    r3288 r3856  
    55    '''this class contains all the method calls to create and populate a csml document. Calling the build method will start the build process 
    66    it needs to be provided with several bits of information to be able to do this. Csmlscan uses this class to run the build process.''' 
    7     def __init__(self,datasetid, directory,selection,csmlft, mapping, timedimension ,outputfile,printscreen,timestorage,spatialstorage,valuestorage, minaxes): 
     7    def __init__(self,datasetid, directory,selection,csmlft, mapping, timedimension ,outputfile,printscreen,timestorage,spatialstorage,valuestorage, minaxes, secallow,secdeny): 
    88        ''' The entry point for building a csml document.  
    99        @param datasetid:   identifier for the Dataset id attributes    
     
    4545        self.valuestorage=valuestorage 
    4646        self.minaxes=minaxes 
     47        self.secallow=secallow 
     48        self.secdeny=secdeny 
    4749        self.csml = None  # csml object holds the csml document in memory. 
    4850        self.ds_element = None #<Dataset> tag, root node. 
     
    5759            print 'error: Cannot find a config file at this location.' 
    5860            raise SystemExit 
    59         #self.addSecurity() 
     61        self.addSecurity() 
    6062        self.createFeatureFileMap() 
    6163        if self.spatialstorage=='fileextract': 
     
    9597        #self.ds.description=csml.parser.Description(strGmlDescription) 
    9698     
    97     #def addSecurity(self):         
    98         #'''Adds NDG style AccessControlPolicy to the dataset based on info in config file''' 
    99         #def _buildSimpleCondition(condition): 
    100             ##builds the tag structure for a SimpleCondition 
    101             #scond=csml.parser.SimpleCondition() 
    102             #parts=condition.split(' ') 
    103             #attauth=csml.parser.csString(parts[0]) 
    104             #role=csml.parser.csString(parts[1])  
    105             #scond.attrauthRole=role 
    106             #scond.dgAttributeAuthority=attauth 
    107             #return scond 
    108          
    109         ##don't do anything if no config options are set. 
    110         #if not self.secallow: 
    111             #if not self.secdeny: 
    112                 #return None 
     99    def addSecurity(self):         
     100        '''Adds NDG style AccessControlPolicy to the dataset based on info in config file''' 
     101        def _buildSimpleCondition(condition): 
     102            #builds the tag structure for a SimpleCondition 
     103            scond=csml.parser.SimpleCondition() 
     104            parts=condition.split(' ') 
     105            attauth=csml.parser.csString(parts[0]) 
     106            role=csml.parser.csString(parts[1])  
     107            scond.attrauthRole=role 
     108            scond.dgAttributeAuthority=attauth 
     109            return scond 
     110         
     111        #don't do anything if no config options are set. 
     112        if not self.secallow: 
     113            if not self.secdeny: 
     114                return None 
    113115            
    114116         
    115         #acp=csml.parser.AccessControlPolicy() 
    116         #if self.secallow: 
    117             #for condition in self.secallow.split(','): 
    118                 #dgSecurityCondition=csml.parser.DgSecurityCondition() 
    119                 #dgSecurityCondition.effect=csml.parser.csString('allow') 
    120                 #dgSecurityCondition.addChildElem('simpleCondition', _buildSimpleCondition(condition)) 
    121                 #acp.addChildElem('dgSecurityCondition', dgSecurityCondition) 
    122         #if self.secdeny: 
    123             #for condition in self.secallow.split(','): 
    124                 #dgSecurityCondition=csml.parser.DgSecurityCondition() 
    125                 #dgSecurityCondition.effect=csml.parser.csString('deny') 
    126                 #dgSecurityCondition.addChildElem('simpleCondition', _buildSimpleCondition(condition)) 
    127                 #acp.addChildElem('dgSecurityCondition', dgSecurityCondition) 
    128         #self.ds.accessControlPolicy=acp        
     117        acp=csml.parser.AccessControlPolicy() 
     118        if self.secallow: 
     119            for condition in self.secallow.split(','): 
     120                dgSecurityCondition=csml.parser.DgSecurityCondition() 
     121                dgSecurityCondition.effect=csml.parser.csString('allow') 
     122                dgSecurityCondition.addChildElem('simpleCondition', _buildSimpleCondition(condition)) 
     123                acp.addChildElem('dgSecurityCondition', dgSecurityCondition) 
     124        if self.secdeny: 
     125            for condition in self.secallow.split(','): 
     126                dgSecurityCondition=csml.parser.DgSecurityCondition() 
     127                dgSecurityCondition.effect=csml.parser.csString('deny') 
     128                dgSecurityCondition.addChildElem('simpleCondition', _buildSimpleCondition(condition)) 
     129                acp.addChildElem('dgSecurityCondition', dgSecurityCondition) 
     130        self.ds.accessControlPolicy=acp        
    129131         
    130132    def createFeatureFileMap(self): 
  • TI02-CSML/trunk/csml/csmlscan.py

    r3680 r3856  
    133133    SELECTION=None 
    134134    ROOTDIRECTORY=os.getcwd() 
     135    SEC_ALLOW=None 
     136    SEC_DENY=None 
    135137     
    136138    #... 
     
    173175        if conf: 
    174176            SPATIALSTORAGE=conf 
     177        conf=config.getConfigNoError('security', 'allow') 
     178        if conf: 
     179            SEC_ALLOW=conf 
     180        conf=config.getConfigNoError('security', 'deny') 
     181        if conf: 
     182            SEC_DENY=conf 
    175183     
    176184    else: #no config file, get command line args 
     
    234242        print '\n spatialaxes:spatialstorage = %s'%SPATIALSTORAGE 
    235243        print '\n values:valuestorage = %s'%VALUESTORAGE 
     244        print '\n security:allow = %s'%SEC_ALLOW 
     245        print '\n security:deny = %s'%SEC_DENY 
    236246        print '\n For more information on config options run the command "csmlscan --help"' 
    237247         
     
    245255         
    246256    #build CSML document 
    247     csmldataset=csmllibs.csmlbuilder.csmlBuilder(DATASETID,ROOTDIRECTORY,SELECTION,FEATURETYPE,MAPPING,TIMEDIMENSION, OUTPUTFILE, PRINTSCREEN,TIMESTORAGE,SPATIALSTORAGE,VALUESTORAGE, MINAXES) 
     257    csmldataset=csmllibs.csmlbuilder.csmlBuilder(DATASETID,ROOTDIRECTORY,SELECTION,FEATURETYPE,MAPPING,TIMEDIMENSION, OUTPUTFILE, PRINTSCREEN,TIMESTORAGE,SPATIALSTORAGE,VALUESTORAGE, MINAXES, SEC_ALLOW, SEC_DENY) 
    248258    csmldataset.build() 
    249259 
Note: See TracChangeset for help on using the changeset viewer.