Skip to content

oauth2_authorisation: fix RuntimeError: No active exception to reraise

Jérome Perrin requested to merge fix/oauth2_no_valid_exception into master

Fix an error happening on py3, when client makes a request with an expired token.

For reference, the error:

  Traceback (innermost last):
    Module ZPublisher.WSGIPublisher, line 181, in transaction_pubevents
      yield
    Module ZPublisher.WSGIPublisher, line 390, in publish_module
      response = _publish(request, new_mod_info)
    Module Products.ERP5Type.patches.WSGIPublisher, line 150, in publish
      return _original_publish(request, module_info)
    Module ZPublisher.WSGIPublisher, line 268, in publish
      obj = request.traverse(path, validated_hook=validate_user)
    Module Products.ERP5Type.patches.BaseRequest, line 19, in BaseRequest_traverse
      return orig_BaseRequest_traverse(
    Module ZPublisher.BaseRequest, line 610, in traverse
      user = v(request, auth, self.roles)
    Module Products.PluggableAuthService.PluggableAuthService, line 242, in validate
      user_ids = self._extractUserIds(request, plugins)
    Module Products.PluggableAuthService.PluggableAuthService, line 559, in _extractUserIds
      credentials = extractor.extractCredentials(request)
    Module Products.ERP5Security.ERP5OAuth2ResourceServerPlugin, line 611, in extractCredentials
      self.__extractCookie(request),
    Module Products.ERP5Security.ERP5OAuth2ResourceServerPlugin, line 565, in __extractCookie
      ).getNewAccessToken(
    Module erp5.component.document.erp5_version.OAuth2AuthorisationClientConnector, line 1039, in getNewAccessToken
      inner_response=self._callOAuth2(
    Module erp5.component.document.erp5_version.OAuth2AuthorisationClientConnector, line 431, in _callOAuth2
      body = getattr(authorisation_server, method)(
    Module erp5.component.document.erp5_version.OAuth2AuthorisationServerConnector, line 915, in wrapper
      header_dict, body, status = _callEndpoint(
    Module erp5.component.document.erp5_version.OAuth2AuthorisationServerConnector, line 865, in _callEndpoint
      return endpoint(
    Module oauthlib.oauth2.rfc6749.endpoints.base, line 116, in wrapper
      return f(endpoint, uri, *args, **kwargs)
    Module oauthlib.oauth2.rfc6749.endpoints.token, line 118, in create_token_response
      return grant_type_handler.create_token_response(
    Module oauthlib.oauth2.rfc6749.grant_types.refresh_token, line 60, in create_token_response
      self.validate_token_request(request)
    Module oauthlib.oauth2.rfc6749.grant_types.refresh_token, line 117, in validate_token_request
      if not self.request_validator.validate_refresh_token(
    Module erp5.component.document.erp5_version.OAuth2AuthorisationServerConnector, line 776, in validate_refresh_token
      session_value = self._authorisation_server_connector_value.getSessionValueFromRefreshToken(
    Module erp5.component.document.erp5_version.OAuth2AuthorisationServerConnector, line 1421, in getSessionValueFromRefreshToken
      token_dict = self._getRefreshTokenDict(token, request)
    Module erp5.component.document.erp5_version.OAuth2AuthorisationServerConnector, line 1303, in _getRefreshTokenDict
      raise  # pylint:disable=misplaced-bare-raise
  RuntimeError: No active exception to reraise
Edited by Jérome Perrin

Merge request reports