gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / lib / oauthlib / oauth1 / rfc5849 / errors.py @ 564
History | View | Annotate | Download (2.48 KB)
1 |
# coding=utf-8
|
---|---|
2 |
"""
|
3 |
oauthlib.oauth1.rfc5849.errors
|
4 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
5 |
|
6 |
Error used both by OAuth 1 clients and provicers to represent the spec
|
7 |
defined error responses for all four core grant types.
|
8 |
"""
|
9 |
from __future__ import unicode_literals |
10 |
|
11 |
from oauthlib.common import urlencode, add_params_to_uri |
12 |
|
13 |
|
14 |
class OAuth1Error(Exception): |
15 |
error = None
|
16 |
description = ''
|
17 |
|
18 |
def __init__(self, description=None, uri=None, status_code=400, |
19 |
request=None):
|
20 |
"""
|
21 |
description: A human-readable ASCII [USASCII] text providing
|
22 |
additional information, used to assist the client
|
23 |
developer in understanding the error that occurred.
|
24 |
Values for the "error_description" parameter MUST NOT
|
25 |
include characters outside the set
|
26 |
x20-21 / x23-5B / x5D-7E.
|
27 |
|
28 |
uri: A URI identifying a human-readable web page with information
|
29 |
about the error, used to provide the client developer with
|
30 |
additional information about the error. Values for the
|
31 |
"error_uri" parameter MUST conform to the URI- Reference
|
32 |
syntax, and thus MUST NOT include characters outside the set
|
33 |
x21 / x23-5B / x5D-7E.
|
34 |
|
35 |
state: A CSRF protection value received from the client.
|
36 |
|
37 |
request: Oauthlib Request object
|
38 |
"""
|
39 |
self.description = description or self.description |
40 |
message = '(%s) %s' % (self.error, self.description) |
41 |
if request:
|
42 |
message += ' ' + repr(request) |
43 |
super(OAuth1Error, self).__init__(message) |
44 |
|
45 |
self.uri = uri
|
46 |
self.status_code = status_code
|
47 |
|
48 |
def in_uri(self, uri): |
49 |
return add_params_to_uri(uri, self.twotuples) |
50 |
|
51 |
@property
|
52 |
def twotuples(self): |
53 |
error = [('error', self.error)] |
54 |
if self.description: |
55 |
error.append(('error_description', self.description)) |
56 |
if self.uri: |
57 |
error.append(('error_uri', self.uri)) |
58 |
return error
|
59 |
|
60 |
@property
|
61 |
def urlencoded(self): |
62 |
return urlencode(self.twotuples) |
63 |
|
64 |
|
65 |
class InsecureTransportError(OAuth1Error): |
66 |
error = 'insecure_transport_protocol'
|
67 |
description = 'Only HTTPS connections are permitted.'
|
68 |
|
69 |
|
70 |
class InvalidSignatureMethodError(OAuth1Error): |
71 |
error = 'invalid_signature_method'
|
72 |
|
73 |
|
74 |
class InvalidRequestError(OAuth1Error): |
75 |
error = 'invalid_request'
|
76 |
|
77 |
|
78 |
class InvalidClientError(OAuth1Error): |
79 |
error = 'invalid_client'
|