From 6db69014898e2095cf165be0faab4f99178896b6 Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Tue, 16 Nov 2021 22:40:49 -0800 Subject: Add `Access-Control-Allow-Origin` header to metadata endpoint. --- oauthlib/oauth2/rfc6749/endpoints/metadata.py | 3 ++- tests/oauth2/rfc6749/endpoints/test_metadata.py | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/oauthlib/oauth2/rfc6749/endpoints/metadata.py b/oauthlib/oauth2/rfc6749/endpoints/metadata.py index 81ee1de..d43a824 100644 --- a/oauthlib/oauth2/rfc6749/endpoints/metadata.py +++ b/oauthlib/oauth2/rfc6749/endpoints/metadata.py @@ -54,7 +54,8 @@ class MetadataEndpoint(BaseEndpoint): """Create metadata response """ headers = { - 'Content-Type': 'application/json' + 'Content-Type': 'application/json', + 'Access-Control-Allow-Origin': '*', } return headers, json.dumps(self.claims), 200 diff --git a/tests/oauth2/rfc6749/endpoints/test_metadata.py b/tests/oauth2/rfc6749/endpoints/test_metadata.py index 681119a..d93f849 100644 --- a/tests/oauth2/rfc6749/endpoints/test_metadata.py +++ b/tests/oauth2/rfc6749/endpoints/test_metadata.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from oauthlib.oauth2 import MetadataEndpoint, Server, TokenEndpoint +import json from tests.unittest import TestCase @@ -37,6 +38,20 @@ class MetadataEndpointTest(TestCase): self.maxDiff = None self.assertEqual(openid_claims, oauth2_claims) + def test_create_metadata_response(self): + endpoint = TokenEndpoint(None, None, grant_types={"password": None}) + metadata = MetadataEndpoint([endpoint], { + "issuer": 'https://foo.bar', + "token_endpoint": "https://foo.bar/token" + }) + headers, body, status = metadata.create_metadata_response('/', 'GET') + assert headers == { + 'Content-Type': 'application/json', + 'Access-Control-Allow-Origin': '*', + } + claims = json.loads(body) + assert claims['issuer'] == 'https://foo.bar' + def test_token_endpoint(self): endpoint = TokenEndpoint(None, None, grant_types={"password": None}) metadata = MetadataEndpoint([endpoint], { -- cgit v1.2.1