Ignore:
Timestamp:
08/06/10 16:33:29 (10 years ago)
Author:
pjkersha
Message:

Incomplete - task 5: MyProxy? Logon HTTPS Interface

  • Finished epydoc ready for first release to PyPI.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/MyProxyWebService/myproxy/server/wsgi/httpbasicauth.py

    r6897 r6950  
    4545class HttpBasicAuthMiddleware(object): 
    4646    '''HTTP Basic Authentication Middleware  
     47 
     48    @cvar AUTHN_FUNC_ENV_KEYNAME: key name for referencing Authentication 
     49    callback function in environ.  Upstream middleware must set this. 
     50    @type AUTHN_FUNC_ENV_KEYNAME: string 
     51    @cvar AUTHN_FUNC_ENV_KEYNAME_OPTNAME: in file option name for setting the 
     52    Authentication callback environ key 
     53    @type AUTHN_FUNC_ENV_KEYNAME_OPTNAME: string 
     54    @cvar REALM_OPTNAME: ini file option name for setting the HTTP Basic Auth 
     55    authentication realm 
     56    @type REALM_OPTNAME: string 
     57    @cvar PARAM_PREFIX: prefix for ini file options 
     58    @type PARAM_PREFIX: string 
     59    @cvar AUTHENTICATE_HDR_FIELDNAME: HTTP header field name 'WWW-Authenticate' 
     60    @type AUTHENTICATE_HDR_FIELDNAME: string 
     61    @cvar AUTHENTICATE_HDR_FIELDNAME_LOWER: lowercase version of  
     62    AUTHENTICATE_HDR_FIELDNAME class variable included for convenience with 
     63    string matching  
     64    @type AUTHENTICATE_HDR_FIELDNAME_LOWER: string 
     65    @cvar AUTHN_SCHEME_HDR_FIELDNAME: HTTP Authentication scheme identifier 
     66    @type AUTHN_SCHEME_HDR_FIELDNAME: string 
     67    @cvar FIELD_SEP: field separator for username/password header string 
     68    @type FIELD_SEP: string 
     69    @cvar AUTHZ_ENV_KEYNAME: WSGI environ key name for HTTP Basic Auth header 
     70    content 
     71    @type AUTHZ_ENV_KEYNAME: string 
     72     
     73    @ivar __rePathMatchList: list of regular expression patterns used to match 
     74    incoming requests and enforce HTTP Basic Auth against 
     75    @type __rePathMatchList: list 
     76    @ivar __authnFuncEnvironKeyName: __authnFuncEnvironKeyName 
     77    @type __authnFuncEnvironKeyName: string 
     78    @ivar __realm: HTTP Basic Auth authentication realm 
     79    @type __realm: string 
     80    @ivar __app: next WSGI app/middleware in call chain 
     81    @type __app: function 
    4782    ''' 
    4883    AUTHN_FUNC_ENV_KEYNAME = ( 
     
    76111     
    77112    def __init__(self, app): 
     113        """Create instance variables 
     114        @param app: next middleware/app in WSGI stack 
     115        @type app: function 
     116        """ 
    78117        self.__rePathMatchList = None 
    79118        self.__authnFuncEnvironKeyName = None 
     
    92131        @type prefix: basestring 
    93132        @param prefix: prefix for configuration items 
    94         @type app_conf: dict         
    95         @param app_conf: PasteDeploy application specific configuration  
     133        @type local_conf: dict         
     134        @param local_conf: PasteDeploy application specific configuration  
    96135        dictionary 
     136        @rtype: myproxy.server.wsgi.httpbasicauth.HttpBasicAuthMiddleware 
     137        @return: an instance of this middleware 
    97138        """ 
    98139        httpBasicAuthFilter = cls(app) 
     
    125166 
    126167    def _getAuthnFuncEnvironKeyName(self): 
     168        """Get authentication callback function environ key name 
     169         
     170        @rtype: basestring 
     171        @return: callback function environ key name 
     172        """ 
    127173        return self.__authnFuncEnvironKeyName 
    128174 
    129175    def _setAuthnFuncEnvironKeyName(self, value): 
     176        """Set authentication callback environ key name 
     177         
     178        @type value: basestring 
     179        @param value: callback function environ key name 
     180        """ 
    130181        if not isinstance(value, basestring): 
    131182            raise TypeError('Expecting string type for ' 
    132183                            '"authnFuncEnvironKeyName"; got %r type' %  
    133184                            type(value)) 
     185             
    134186        self.__authnFuncEnvironKeyName = value 
    135187 
     
    141193 
    142194    def _getRePathMatchList(self): 
     195        """Get regular expression path match list 
     196         
     197        @rtype: tuple or list 
     198        @return: list of regular expressions used to match incoming request  
     199        paths and apply HTTP Basic Auth to 
     200        """ 
    143201        return self.__rePathMatchList 
    144202 
    145203    def _setRePathMatchList(self, value): 
     204        """Set regular expression path match list 
     205         
     206        @type value: tuple or list 
     207        @param value: list of regular expressions used to match incoming request  
     208        paths and apply HTTP Basic Auth to 
     209        """ 
    146210        if not isinstance(value, (list, tuple)): 
    147211            raise TypeError('Expecting list or tuple type for ' 
     
    156220 
    157221    def _getRealm(self): 
     222        """Get realm 
     223         
     224        @rtype: basestring 
     225        @return: HTTP Authentication realm to set in responses 
     226        """ 
    158227        return self.__realm 
    159228 
    160229    def _setRealm(self, value): 
     230        """Set realm 
     231         
     232        @type value: basestring 
     233        @param value: HTTP Authentication realm to set in responses 
     234        """ 
    161235        if not isinstance(value, basestring): 
    162236            raise TypeError('Expecting string type for ' 
     
    188262    def _parseCredentials(self, environ): 
    189263        """Extract username and password from HTTP_AUTHORIZATION environ key 
     264         
     265        @param environ: WSGI environ dict 
     266        @type environ: dict 
    190267         
    191268        @rtype: tuple 
     
    222299        @return: response 
    223300        @rtype: iterable 
     301        @raise HttpBasicAuthMiddlewareConfigError: no authentication callback 
     302        found in environ 
    224303        """ 
    225304        log.debug("HttpBasicAuthNMiddleware.__call__ ...") 
     
    296375        @param contentType: set 'Content-type' HTTP header field - defaults to 
    297376        'text/plain' 
     377        @rtype: list 
     378        @return: HTTP error response 
    298379        '''                         
    299380        status = '%d %s' % (code, httplib.responses[code]) 
Note: See TracChangeset for help on using the changeset viewer.