Changeset 5189 for TI12-security


Ignore:
Timestamp:
08/04/09 16:11:11 (11 years ago)
Author:
pjkersha
Message:

Removed ndg.security.server.wsgi.openid.provider.AuthNInterfaceCtx. This is not needed for passing info between login, logout and AX Response calls. AbstractAuthNInterface derived type can perform the same task.

Location:
TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/__init__.py

    r5187 r5189  
    8484    errorMsg = "AuthNInterface configuration error" 
    8585     
    86 class AuthNInterfaceCtx(object): 
    87     """Implement a derived version of this class to enable passing of any 
    88     login context information returned from AbstractAuthNInterface.login 
    89     to AbstractAuthNInterface.logout""" 
    90      
    9186class AbstractAuthNInterface(object): 
    9287    '''OpenID Provider abstract base class for authentication configuration. 
     
    138133        @raise AuthNInterfaceError: generic exception not described by the  
    139134        other specific exception types. 
    140         @rtype: AuthNInterfaceCtx 
    141         @return: authentication context object for use by OpenID Provider to 
    142         handle logout. Pass any information required by the logout method via 
    143         this object.  The object should be instance of a class derived from 
    144         AuthNInterfaceCtx 
    145135        """ 
    146136        raise NotImplementedError() 
     
    174164        raise NotImplementedError() 
    175165 
    176     def logout(self, authNInterfaceCtx): 
     166    def logout(self, authNInterface): 
    177167        """Stub to enable custom actions for logout. 
    178168         
    179         @type authNInterfaceCtx: AuthNInterfaceCtx 
    180         @param authNInterfaceCtx: authentication context object returned from 
    181         login method 
     169        @type authNInterface: AbstractAuthNInterface derived type 
     170        @param authNInterface: authentication interface object.  See 
     171        AbstractAuthNInterface class for details 
    182172        """ 
    183173        raise NotImplementedError() 
     
    335325            raise 
    336326 
    337         # Authentication context object - set to a default.  Authentication 
    338         # interface object should return a context object into this variable 
    339         # from its login method for the logout method to reference when it is 
    340         # later invoked. 
    341         self.authNInterfaceCtx = AuthNInterfaceCtx() 
    342          
    343327        # Paths relative to base URL - Nb. remove trailing '/' 
    344328        self.paths = dict([(k, opt[k].rstrip('/')) 
     
    850834                # Invoke custom authentication interface plugin 
    851835                try: 
    852                     self.authNInterfaceCtx = self._authN.logon(environ, 
    853                                               userIdentifier, 
    854                                               self.query['username'], 
    855                                               self.query.get('password', '')) 
     836                    self._authN.logon(environ, 
     837                                      userIdentifier, 
     838                                      self.query['username'], 
     839                                      self.query.get('password', '')) 
    856840                     
    857841                except AuthNInterfaceError, e: 
     
    885869                 
    886870                try: 
    887                     self._authN.logout(self.authNInterfaceCtx) 
     871                    self._authN.logout() 
    888872                     
    889873                except Exception, e: 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/authninterface/sessionmanager.py

    r5181 r5189  
    2020from ndg.security.server.wsgi.openid.provider import AbstractAuthNInterface, \ 
    2121    AuthNInterfaceConfigError, AuthNInterfaceInvalidCredentials, \ 
    22     AuthNInterfaceUsername2IdentifierMismatch, AuthNInterfaceCtx 
     22    AuthNInterfaceUsername2IdentifierMismatch 
    2323     
    2424from ndg.security.server.wsgi.utils.sessionmanagerclient import \ 
    2525    WSGISessionManagerClient, AuthNServiceInvalidCredentials 
    2626     
    27  
    28 class SessionManagerAuthNCtx(AuthNInterfaceCtx): 
    29     """Authentication Context class for passing session Id and Session Manager 
    30     URI to logout method AXResponse instance 
    31     """ 
    32     def __init__(self, uri=None, environKeyNameName=None, sessionId=None): 
    33         self.uri = uri 
    34         self.environKeyNameName = environKeyNameName 
    35         self.sessionId = sessionId 
    3627 
    3728class SessionManagerOpenIDAuthNInterface(AbstractAuthNInterface): 
     
    115106         
    116107        try: 
    117             authNCtx = SessionManagerAuthNCtx(uri=self._client.uri, 
    118                                 environKeyNameName=self._client.environKeyName) 
    119108            self._client.environ = environ 
    120             authNCtx.sessionId = self._client.connect(username,  
    121                                                       passphrase=password)[-1] 
     109            self.sessionId = self._client.connect(username,  
     110                                                  passphrase=password)[-1] 
    122111             
    123112        except AuthNServiceInvalidCredentials, e: 
    124113            log.exception(e) 
    125114            raise AuthNInterfaceInvalidCredentials() 
    126          
    127         return authNCtx 
    128115         
    129116     
     
    174161        return userIdentifiers 
    175162 
    176     def logout(self, authNCtx): 
     163    def logout(self): 
     164        """logout from the Session Manager 
    177165        """ 
    178         @type authNCtx: SessionManagerAuthNCtx 
    179         @param authNCtx: authentication context object returned from 
    180         login method 
    181         """ 
    182         if not isinstance(authNCtx, SessionManagerAuthNCtx): 
    183             log.error("Expecting SessionManagerAuthNCtx type for authNCtx; " 
    184                       "got: %s" % authNCtx.__class__.__name__) 
    185             raise AuthNInterfaceConfigError("Expecting SessionManagerAuthNCtx " 
    186                                             "type for authNCtx; got: %s" %  
    187                                             authNCtx.__class__.__name__) 
    188          
    189166        try: 
    190             self._client.disconnect(sessID=authNCtx.sessionId) 
     167            self._client.disconnect(sessID=self.sessionId) 
    191168             
    192169        except Exception, e: 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/axinterface/__init__.py

    r5168 r5189  
    3636        raise NotImplementedError() 
    3737     
    38     def __call__(self, ax_req, ax_resp, authNInterfaceCtx): 
     38    def __call__(self, ax_req, ax_resp, authNInterface): 
    3939        """Add the attributes to the ax_resp object requested in the ax_req 
    4040        object.  If it is not possible to return them, raise  
     
    4848        @param ax_resp: attribute exchange response object.  This method should 
    4949        update the settings in this object.  Use addValue and setValues methods 
    50         @type authNInterfaceCtx: AuthNInterfaceCtx 
    51         @param authNInterfaceCtx: custom authentication context information set 
    52         at login.  See ndg.security.server.openid.provider.AuthNInterfaceCtx 
    53         for more information 
     50        @type authNInterfaceCtx: AbstractAuthNInterface 
     51        @param authNInterfaceCtx: custom authentication interface set 
     52        at login.  See  
     53        ndg.security.server.openid.provider.AbstractAuthNInterface for more  
     54        information 
    5455        """ 
    5556        raise NotImplementedError() 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/axinterface/sessionmanager.py

    r5181 r5189  
    2020from ndg.security.server.wsgi.openid.provider.axinterface import \ 
    2121    AXInterface, AXInterfaceConfigError, MissingRequiredAttrs 
    22 from ndg.security.server.wsgi.openid.provider import AuthNInterfaceCtx     
     22from ndg.security.server.wsgi.openid.provider import AbstractAuthNInterface     
    2323     
    2424class SessionManagerAXInterface(AXInterface): 
     
    5252            setattr(self, name, val) 
    5353         
    54     def __call__(self, ax_req, ax_resp, authNInterfaceCtx): 
     54    def __call__(self, ax_req, ax_resp, authNInterface): 
    5555        """Add the attributes to the ax_resp object requested in the ax_req 
    5656        object.  If it is not possible to return them, raise  
     
    6464        @param ax_resp: attribute exchange response object.  This method should 
    6565        update the settings in this object.  Use addValue and setValues methods 
    66         @type authNInterfaceCtx: AuthNInterfaceCtx 
    67         @param authNInterfaceCtx: custom authentication context information set 
    68         at login.  See ndg.security.server.openid.provider.AuthNInterfaceCtx 
    69         for more information 
     66        @type authNInterface: AbstractAuthNInterface 
     67        @param authNInterface: custom authentication context information set 
     68        at login.  See  
     69        ndg.security.server.openid.provider.AbstractAuthNInterface for more 
     70        information 
    7071        """ 
    7172        reqAttrURIs = ax_req.getRequiredAttrs() 
     
    7576             
    7677        if self.sessionIdTypeURI in reqAttrURIs: 
    77             if not isinstance(authNInterfaceCtx, AuthNInterfaceCtx): 
    78                 raise AXInterfaceConfigError("Expecting AuthNInterfaceCtx " 
    79                                         "type for authNInterfaceCtx arg; " 
    80                                         "got: %s" %  
    81                                         authNInterfaceCtx.__class__.__name__) 
     78            if not isinstance(authNInterface, AbstractAuthNInterface): 
     79                raise AXInterfaceConfigError("Expecting " 
     80                                             "AbstractAuthNInterface derived " 
     81                                             "type for authNInterface arg; " 
     82                                             "got: %s" %  
     83                                             authNInterface.__class__.__name__) 
    8284                 
    83             ax_resp.addValue(self.sessionIdTypeURI,authNInterfaceCtx.sessionId) 
     85            ax_resp.addValue(self.sessionIdTypeURI, authNInterface.sessionId) 
Note: See TracChangeset for help on using the changeset viewer.