Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1577927

Browse files
committed
remove httpsig and other signing code superseeded by JWT
1 parent e0b65c4 commit 1577927

14 files changed

+9
-857
lines changed

stream/client.py

+7-44
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,13 @@
88
from stream.serializer import _datetime_encoder
99

1010
from stream import exceptions, serializer
11-
from stream.signing import sign
1211
from stream.users import Users
1312
from stream.utils import validate_feed_slug, validate_user_id, validate_foreign_id_time
14-
from stream.httpsig.requests_auth import HTTPSignatureAuth
1513
from requests import Request
1614
from stream.reactions import Reactions
1715
from stream.collections import Collections
1816
from stream.personalization import Personalization
17+
from stream.feed import Feed
1918

2019
try:
2120
from urllib.parse import urlparse
@@ -89,7 +88,6 @@ def __init__(
8988
self.base_analytics_url = "https://analytics.stream-io-api.com/analytics/"
9089

9190
self.session = requests.Session()
92-
self.auth = HTTPSignatureAuth(api_key, secret=api_secret)
9391

9492
token = self.create_jwt_token("personalization", "*", feed_id="*", user_id="*")
9593
self.personalization = Personalization(self, token)
@@ -110,15 +108,9 @@ def feed(self, feed_slug, user_id):
110108
:param feed_slug: the slug of the feed
111109
:param user_id: the user id
112110
"""
113-
from stream.feed import Feed
114-
115111
feed_slug = validate_feed_slug(feed_slug)
116112
user_id = validate_user_id(user_id)
117-
118-
# generate the token
119-
feed_id = "%s%s" % (feed_slug, user_id)
120-
token = sign(self.api_secret, feed_id)
121-
113+
token = self.create_jwt_token("feed", "*", feed_id="*")
122114
return Feed(self, feed_slug, user_id, token)
123115

124116
def get_default_params(self):
@@ -177,34 +169,6 @@ def _parse_response(self, response):
177169
self.raise_exception(parsed_result, status_code=response.status_code)
178170
return parsed_result
179171

180-
def _make_signed_request(self, method_name, relative_url, params=None, data=None):
181-
params = params or {}
182-
data = data or {}
183-
serialized = None
184-
headers = self.get_default_header()
185-
headers["X-Api-Key"] = self.api_key
186-
date_header = datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT")
187-
headers["Date"] = date_header
188-
default_params = self.get_default_params()
189-
default_params.update(params)
190-
url = self.get_full_url("api", relative_url)
191-
serialized = serializer.dumps(data)
192-
method = getattr(self.session, method_name)
193-
if method_name in ["post", "put"]:
194-
serialized = serializer.dumps(data)
195-
response = method(
196-
url,
197-
auth=self.auth,
198-
data=serialized,
199-
headers=headers,
200-
params=default_params,
201-
timeout=self.timeout,
202-
)
203-
logger.debug(
204-
"stream api call %s, headers %s data %s", response.url, headers, data
205-
)
206-
return self._parse_response(response)
207-
208172
def create_user_session_token(self, user_id, **extra_data):
209173
"""Setup the payload for the given user_id with optional
210174
extra data (key, value pairs) and encode it using jwt
@@ -286,8 +250,6 @@ def errors_from_fields(exception_fields):
286250
error_message = result["detail"]
287251
exception_fields = result.get("exception_fields")
288252
if exception_fields is not None:
289-
errors = []
290-
291253
if isinstance(exception_fields, list):
292254
errors = [
293255
errors_from_fields(exception_dict)
@@ -341,7 +303,8 @@ def add_to_many(self, activity, feeds):
341303
342304
"""
343305
data = {"activity": activity, "feeds": feeds}
344-
return self._make_signed_request("post", "feed/add_to_many/", data=data)
306+
token = self.create_jwt_token("feed", "*", feed_id="*")
307+
return self.post("feed/add_to_many/", token, data=data)
345308

346309
def follow_many(self, follows, activity_copy_limit=None):
347310
"""
@@ -355,9 +318,9 @@ def follow_many(self, follows, activity_copy_limit=None):
355318

356319
if activity_copy_limit != None:
357320
params = dict(activity_copy_limit=activity_copy_limit)
358-
359-
return self._make_signed_request(
360-
"post", "follow_many/", params=params, data=follows
321+
token = self.create_jwt_token("follower", "*", feed_id="*")
322+
return self.post(
323+
"follow_many/", token, params=params, data=follows
361324
)
362325

363326
def update_activities(self, activities):

stream/httpsig/__init__.py

-2
This file was deleted.

stream/httpsig/requests_auth.py

-41
This file was deleted.

stream/httpsig/sign.py

-111
This file was deleted.

stream/httpsig/tests/__init__.py

-3
This file was deleted.

stream/httpsig/tests/rsa_private.pem

-15
This file was deleted.

stream/httpsig/tests/rsa_public.pem

-6
This file was deleted.

stream/httpsig/tests/test_signature.py

-84
This file was deleted.

stream/httpsig/tests/test_utils.py

-18
This file was deleted.

0 commit comments

Comments
 (0)