Changeset 862 for TI12-security


Ignore:
Timestamp:
28/04/06 14:31:54 (14 years ago)
Author:
pjkersha
Message:

Included checks for MyProxy? Server machine setting - if not running on local
machine myproxy-admin-* commands can't be used. This means MyProxy? addUser method
is disabled if not running from local machine.

File:
1 edited

Legend:

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

    r543 r862  
    1616# Use pipes for stdin/stdout for MyProxy commands 
    1717import os 
     18 
     19# Get hostname to check MyProxy server running on localhost 
     20import socket 
    1821 
    1922# Seeding for random number generator 
     
    102105                   'simpleCASrvProp'] 
    103106 
     107    # For checking whether MyProxy server name is localhost 
     108    __localHostname = socket.gethostname() 
     109    __localHostnames = (__localHostname, 
     110                        __localHostname.split('.')[0], 
     111                        "localhost",  
     112                        "127.0.0.1") 
     113     
    104114     
    105115    def __init__(self, propFilePath=None, **prop): 
     
    163173            
    164174 
    165  
    166  
     175    #_________________________________________________________________________ 
    167176    def setProperties(self, **prop): 
    168177        """Update existing properties from an input dictionary 
     
    189198 
    190199 
    191  
    192  
     200    #_________________________________________________________________________ 
    193201    def readProperties(self, propFilePath=None, propElem=None): 
    194202        """Read XML properties from a file or cElementTree node 
     
    274282 
    275283 
    276  
    277          
     284    #_________________________________________________________________________ 
    278285    def getDelegation(self, userName, passPhrase): 
    279286        """Generate a proxy certificate given the MyProxy username and 
     
    343350 
    344351 
    345  
    346      
     352    #_________________________________________________________________________ 
    347353    def addUser(self, 
    348354                userName, 
     
    352358                caPassPhrase=None, 
    353359                caConfigFilePath=None, 
    354                 **prop): 
    355          
     360                **prop):         
    356361        """Add a new user generating a new certificate and adding it to the 
    357362        MyProxy repository 
     
    391396        """ 
    392397 
     398        if not self.__myProxyServerAtLocalHost(): 
     399            raise NotImplementedError("addUser method must be called " + \ 
     400                                      "with MyProxy server set " + \ 
     401                                      "to the local host") 
     402         
    393403         
    394404        # Default Common name to the username 
     
    594604 
    595605     
    596              
    597  
     606    #_________________________________________________________________________ 
    598607    def userIsRegistered(self, userName): 
    599608        """Return True if given username is registered in the repository""" 
     609         
     610        if not self.__myProxyServerAtLocalHost(): 
     611            raise NotImplementedError("userIsRegistered method must " + \ 
     612                                      "be called with MyProxy server set " + \ 
     613                                      "to the local host") 
     614         
    600615         
    601616        errMsgTmpl = "Checking for user '%s': %s" 
     
    630645 
    631646 
    632  
    633  
     647    #_________________________________________________________________________         
    634648    def __mkRandTmpFile(self): 
    635649        """Make a file containing random data to seed the random number 
     
    648662     
    649663 
     664    #_________________________________________________________________________         
     665    def __myProxyServerAtLocalHost(self): 
     666        """Check setting for MyProxy server address - if it's not the  
     667        local machine myproxy-admin-* commands won't work.  This affects 
     668        addUser and userIsRegistered commands"""         
     669        return self.__prop['myProxyServer'] in self.__class__.__localHostnames 
     670             
    650671 
    651672     
Note: See TracChangeset for help on using the changeset viewer.