oauth2_authorisation: fix RuntimeError: No active exception to reraise
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