Ignore:
Timestamp:
06/05/09 09:05:09 (11 years ago)
Author:
pjkersha
Message:

Added additional debug logging and improved error handling

Location:
TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi
Files:
5 edited

Legend:

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

    r5227 r5254  
    8080 
    8181    _isAuthenticated = lambda self: \ 
    82                             'username' in self.environ.get(self.sessionKey, ()) 
     82                            'username' in self.environ.get(self.sessionKey,()) 
    8383    isAuthenticated = property(fget=_isAuthenticated, 
    8484                               doc='boolean to indicate is user logged in') 
     
    164164                return False 
    165165        else: 
    166             log.debug("AuthorizationHandler access denied for policy") 
     166            log.debug("AuthorizationHandler policy [%s] denied access for " 
     167                      "uri [%s]", self.policyFilePath, resourceURI) 
    167168            # True invokes the access forbidden middleware 
    168169            return True 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/__init__.py

    r5222 r5254  
    746746                     
    747747            except Exception, e: 
    748                 log.error("Setting response following ID Approval: %s" % e) 
     748                log.error("%s type exception raised setting response " 
     749                          "following ID Approval: %s", e.__class__.__name__,e) 
    749750                return self._render.errorPage(environ, start_response, 
    750751                        'An error occurred setting additional parameters ' 
     
    859860                self.session['approved'] = {} 
    860861                self.session.save() 
     862                 
     863                log.info("user [%s] logged in", self.session['username']) 
    861864            else: 
    862865                # logout 
    863866                if 'username' not in self.session: 
    864867                    log.error("No user is logged in") 
    865                     return self._redirect(start_response,self.query['fail_to']) 
     868                    return self._redirect(start_response, 
     869                                          self.query['fail_to']) 
    866870                 
     871                log.info("user [%s] logging out ...",self.session['username']) 
     872 
    867873                del self.session['username'] 
    868874                self.session.pop('approved', None) 
     
    954960                     
    955961            except Exception, e: 
    956                 log.error("Setting response following ID Approval: %s" % e) 
     962                log.error("%s type exception raised setting response " 
     963                          "following ID Approval: %s", e.__class__.__name__,e) 
    957964                response = self._render.errorPage(environ, start_response, 
    958965                        'An error occurred setting additional parameters ' 
     
    963970            return self.oidResponse(response) 
    964971        else: 
    965             return self._render.decidePage(environ, start_response, oidRequest) 
     972            try: 
     973                return self._render.decidePage(environ,  
     974                                               start_response,  
     975                                               oidRequest) 
     976            except AuthNInterfaceError, e: 
     977                log.error("%s type exception raised calling decide page " 
     978                          "rendering - an OpenID identifier look-up error? " 
     979                          "message is: %s", e.__class__.__name__,e) 
     980                response = self._render.errorPage(environ, start_response, 
     981                        'An error has occurred displaying an options page ' 
     982                        'which checks whether you want to return to the site ' 
     983                        'requesting your ID.  Please report this fault to ' 
     984                        'your site administrator.') 
     985                return response 
     986                 
    966987         
    967988         
     
    10701091            return 
    10711092         
     1093        log.debug("Calling AX plugin: %s ...", 
     1094                  self.axResponse.__class__.__name__) 
     1095         
    10721096        # Set requested values - need user intervention here to confirm  
    10731097        # release of attributes + assignment based on required attributes -  
     
    10831107        except Exception, e: 
    10841108            log.error("%s exception raised setting requested Attribute " 
    1085                       "Exchange values: %s" % (e.__class__, e)) 
     1109                      "Exchange values: %s", e.__class__.__name__, e) 
    10861110            raise 
    10871111         
     1112        log.debug("Adding AX parameters to response: %s ...", ax_resp) 
    10881113        oidResponse.addExtension(ax_resp) 
     1114        log.debug("Added AX parameters to response") 
    10891115         
    10901116         
     
    11381164                try: 
    11391165                    oidResponse = self._identityApprovedPostProcessing( 
    1140                                                                     oidRequest) 
     1166                                                                oidRequest) 
    11411167                except (OpenIDProviderMissingRequiredAXAttrs, 
    11421168                        OpenIDProviderMissingAXResponseHandler): 
     
    11491175                     
    11501176                except Exception, e: 
    1151                     log.error("Setting response following ID Approval: %s" % e) 
     1177                    log.error("%s type exception raised setting response " 
     1178                          "following ID Approval: %s", e.__class__.__name__,e) 
     1179                    log.exception(e) 
    11521180                    response = self._render.errorPage(environ, start_response, 
    11531181                        'An error occurred setting additional parameters ' 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/authninterface/basic.py

    r5223 r5254  
    1717log = logging.getLogger(__name__) 
    1818 
    19 from ndg.security.server.wsgi.openid.provider import AbstractAuthNInterface 
     19from ndg.security.server.wsgi.openid.provider import AbstractAuthNInterface, \ 
     20    AuthNInterfaceInvalidCredentials, AuthNInterfaceRetrieveError, \ 
     21    AuthNInterfaceConfigError, AuthNInterfaceUsername2IdentifierMismatch 
    2022  
    2123     
     
    8284         
    8385        @raise AuthNInterfaceInvalidCredentials: invalid username/password 
     86        @raise AuthNInterfaceUsername2IdentifierMismatch: no OpenID matching 
     87        the given username 
    8488        """ 
    8589        if self._userCreds.get(username) != password: 
     
    152156        self._client = WSGISessionManagerClient(**prop) 
    153157         
     158        # This is set at login 
     159        self.sessionId = None 
    154160         
    155161    def logon(self, environ, userIdentifier, username, password): 
     
    175181        try: 
    176182            self._client.environ = environ 
    177             self.sessionId = self._client.connect(username,  
    178                                                   passphrase=password)[-1] 
     183            connectResp = self._client.connect(username, passphrase=password) 
     184            log.debug("Connected to Session Manager with: %s", connectResp) 
     185             
     186            self.sessionId = connectResp[-1] 
    179187             
    180188        except AuthNServiceInvalidCredentials, e: 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/authninterface/sessionmanager.py

    r5227 r5254  
    6262        self._client = WSGISessionManagerClient(**prop) 
    6363         
     64        # Set at login 
     65        self.sessionId = None 
    6466         
    6567    def logon(self, environ, userIdentifier, username, password): 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/axinterface/sessionmanager.py

    r5189 r5254  
    7272        reqAttrURIs = ax_req.getRequiredAttrs() 
    7373        if self.sessionManagerURITypeURI in reqAttrURIs: 
     74            log.debug("Adding AX parameter %s=%s ...",  
     75                      self.sessionManagerURITypeURI, 
     76                      self.sessionManagerURI) 
     77             
    7478            ax_resp.addValue(self.sessionManagerURITypeURI, 
    7579                             self.sessionManagerURI) 
     
    8185                                             "type for authNInterface arg; " 
    8286                                             "got: %s" %  
    83                                              authNInterface.__class__.__name__) 
     87                                            authNInterface.__class__.__name__) 
    8488                 
     89            log.debug("Adding AX parameter %s=%s ...", self.sessionIdTypeURI, 
     90                                                    authNInterface.sessionId) 
     91             
    8592            ax_resp.addValue(self.sessionIdTypeURI, authNInterface.sessionId) 
Note: See TracChangeset for help on using the changeset viewer.