diff --git a/resolverway/tests/unittests/test_resolver_gateway.py b/resolverway/tests/unittests/test_resolver_gateway.py index 50f838c..9d3e2e1 100644 --- a/resolverway/tests/unittests/test_resolver_gateway.py +++ b/resolverway/tests/unittests/test_resolver_gateway.py @@ -183,5 +183,14 @@ def test_adsws_call(self): self.assertEqual(account['hashed_user_id'], "ec43c30b9a81ed89765a2b8a04cac38925058eeacd5b5264389b1d4a7df2b28c") + def test_verify_url(self): + """ + + :return: + """ + header = {'Referer': 'https://dev.adsabs.harvard.edu/abs/1987gady.book.....B/abstract'} + r = self.client.get('/link_gateway/1987gady.book.....B/ABSTRACT/https://dev.adsabs.harvard.edu/abs/1987gady.book.....B/ABSTRACT', headers=header) + self.assertEqual(r.status_code, 302) + if __name__ == '__main__': unittest.main() diff --git a/resolverway/views.py b/resolverway/views.py index c424484..868a475 100644 --- a/resolverway/views.py +++ b/resolverway/views.py @@ -192,19 +192,16 @@ def verify_url(self, referrer): # if full url in-house link detected if url.netloc.split('.',1)[-1] == referred_ads: return True + # outside link, see if originated from ads + referrer_url = urllib.parse.urlparse(referrer) + if all([referrer_url.scheme, referrer_url.netloc]): + if referrer_url.netloc.split('.', 1)[-1] == referred_ads: + return True + # TODO: check back with resolver servcie, make sure the redirect link is from there except: - try: - # if a valid outside link, see if originated from ads - referrer_url = urllib.parse.urlparse(referrer) - if all([referrer_url.scheme, referrer_url.netloc]): - if referrer_url.netloc.split('.',1)[-1] == referred_ads: - return True - except: - # TODO: check back with resolver servcie, make sure it is from there - pass pass - # for now do not redirect if outside link and did not originate from BBB + # do not redirect if outside link and did not originate from BBB return False def process_request(self):