1
1
"""
2
2
The MIT License
3
3
4
- Copyright (c) 2007 Leah Culver, Joe Stump, Mark Paschal, Vic Fryzel
4
+ Copyright (c) 2007-2010 Leah Culver, Joe Stump, Mark Paschal, Vic Fryzel
5
5
6
6
Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
of this software and associated documentation files (the "Software"), to deal
36
36
from cgi import parse_qs , parse_qsl
37
37
38
38
39
- VERSION = '1.0' # Hi Blaine!
39
+ VERSION = '1.0' # Hi Blaine!
40
40
HTTP_METHOD = 'GET'
41
41
SIGNATURE_METHOD = 'PLAINTEXT'
42
42
@@ -55,27 +55,29 @@ def message(self):
55
55
def __str__ (self ):
56
56
return self ._message
57
57
58
+
58
59
class MissingSignature (Error ):
59
60
pass
60
61
62
+
61
63
def build_authenticate_header (realm = '' ):
62
64
"""Optional WWW-Authenticate header (401 error)"""
63
65
return {'WWW-Authenticate' : 'OAuth realm="%s"' % realm }
64
66
65
67
66
68
def build_xoauth_string (url , consumer , token = None ):
67
69
"""Build an XOAUTH string for use in SMTP/IMPA authentication."""
68
- request = Request .from_consumer_and_token (consumer , token ,
70
+ request = Request .from_consumer_and_token (consumer , token ,
69
71
"GET" , url )
70
72
71
73
signing_method = SignatureMethod_HMAC_SHA1 ()
72
74
request .sign_request (signing_method , consumer , token )
73
75
74
76
params = []
75
- for k ,v in sorted (request .iteritems ()):
77
+ for k , v in sorted (request .iteritems ()):
76
78
if v is not None :
77
79
params .append ('%s="%s"' % (k , escape (v )))
78
-
80
+
79
81
return "%s %s %s" % ("GET" , url , ',' .join (params ))
80
82
81
83
@@ -130,10 +132,8 @@ def __init__(self, key, secret):
130
132
raise ValueError ("Key and secret must be set." )
131
133
132
134
def __str__ (self ):
133
- data = {
134
- 'oauth_consumer_key' : self .key ,
135
- 'oauth_consumer_secret' : self .secret
136
- }
135
+ data = {'oauth_consumer_key' : self .key ,
136
+ 'oauth_consumer_secret' : self .secret }
137
137
138
138
return urllib .urlencode (data )
139
139
@@ -232,7 +232,7 @@ def from_string(s):
232
232
try :
233
233
token .callback_confirmed = params ['oauth_callback_confirmed' ][0 ]
234
234
except KeyError :
235
- pass # 1.0, no callback confirmed.
235
+ pass # 1.0, no callback confirmed.
236
236
return token
237
237
238
238
def __str__ (self ):
@@ -714,6 +714,7 @@ def sign(self, request, consumer, token):
714
714
# Calculate the digest base 64.
715
715
return binascii .b2a_base64 (hashed .digest ())[:- 1 ]
716
716
717
+
717
718
class SignatureMethod_PLAINTEXT (SignatureMethod ):
718
719
719
720
name = 'PLAINTEXT'
@@ -729,4 +730,3 @@ def signing_base(self, request, consumer, token):
729
730
def sign (self , request , consumer , token ):
730
731
key , raw = self .signing_base (request , consumer , token )
731
732
return raw
732
-
0 commit comments