structure saas with tools
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
"""authlib.oauth1.rfc5849.errors.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
RFC5849 has no definition on errors. This module is designed by
|
||||
Authlib based on OAuth 1.0a `Section 10`_ with some changes.
|
||||
|
||||
.. _`Section 10`: https://oauth.net/core/1.0a/#rfc.section.10
|
||||
"""
|
||||
|
||||
from authlib.common.errors import AuthlibHTTPError
|
||||
from authlib.common.security import is_secure_transport
|
||||
|
||||
|
||||
class OAuth1Error(AuthlibHTTPError):
|
||||
def __init__(self, description=None, uri=None, status_code=None):
|
||||
super().__init__(None, description, uri, status_code)
|
||||
|
||||
def get_headers(self):
|
||||
"""Get a list of headers."""
|
||||
return [
|
||||
("Content-Type", "application/x-www-form-urlencoded"),
|
||||
("Cache-Control", "no-store"),
|
||||
("Pragma", "no-cache"),
|
||||
]
|
||||
|
||||
|
||||
class InsecureTransportError(OAuth1Error):
|
||||
error = "insecure_transport"
|
||||
description = "OAuth 2 MUST utilize https."
|
||||
|
||||
@classmethod
|
||||
def check(cls, uri):
|
||||
if not is_secure_transport(uri):
|
||||
raise cls()
|
||||
|
||||
|
||||
class InvalidRequestError(OAuth1Error):
|
||||
error = "invalid_request"
|
||||
|
||||
|
||||
class UnsupportedParameterError(OAuth1Error):
|
||||
error = "unsupported_parameter"
|
||||
|
||||
|
||||
class UnsupportedSignatureMethodError(OAuth1Error):
|
||||
error = "unsupported_signature_method"
|
||||
|
||||
|
||||
class MissingRequiredParameterError(OAuth1Error):
|
||||
error = "missing_required_parameter"
|
||||
|
||||
def __init__(self, key):
|
||||
description = f'missing "{key}" in parameters'
|
||||
super().__init__(description=description)
|
||||
|
||||
|
||||
class DuplicatedOAuthProtocolParameterError(OAuth1Error):
|
||||
error = "duplicated_oauth_protocol_parameter"
|
||||
|
||||
|
||||
class InvalidClientError(OAuth1Error):
|
||||
error = "invalid_client"
|
||||
status_code = 401
|
||||
|
||||
|
||||
class InvalidTokenError(OAuth1Error):
|
||||
error = "invalid_token"
|
||||
description = 'Invalid or expired "oauth_token" in parameters'
|
||||
status_code = 401
|
||||
|
||||
|
||||
class InvalidSignatureError(OAuth1Error):
|
||||
error = "invalid_signature"
|
||||
status_code = 401
|
||||
|
||||
|
||||
class InvalidNonceError(OAuth1Error):
|
||||
error = "invalid_nonce"
|
||||
status_code = 401
|
||||
|
||||
|
||||
class AccessDeniedError(OAuth1Error):
|
||||
error = "access_denied"
|
||||
description = "The resource owner or authorization server denied the request"
|
||||
|
||||
|
||||
class MethodNotAllowedError(OAuth1Error):
|
||||
error = "method_not_allowed"
|
||||
status_code = 405
|
||||
Reference in New Issue
Block a user