providers/oauth2: allow protected_resource_view when method is OPTIONS
# Conflicts: # authentik/providers/oauth2/views/provider.py
This commit is contained in:
parent
90d234a458
commit
5d071488d3
|
@ -101,7 +101,9 @@ def protected_resource_view(scopes: list[str]):
|
||||||
This decorator also injects the token into `kwargs`"""
|
This decorator also injects the token into `kwargs`"""
|
||||||
|
|
||||||
def wrapper(view):
|
def wrapper(view):
|
||||||
def view_wrapper(request, *args, **kwargs):
|
def view_wrapper(request: HttpRequest, *args, **kwargs):
|
||||||
|
if request.method == "OPTIONS":
|
||||||
|
return view(request, *args, **kwargs)
|
||||||
try:
|
try:
|
||||||
access_token = extract_access_token(request)
|
access_token = extract_access_token(request)
|
||||||
if not access_token:
|
if not access_token:
|
||||||
|
|
|
@ -19,6 +19,7 @@ from authentik.providers.oauth2.models import (
|
||||||
ResponseTypes,
|
ResponseTypes,
|
||||||
ScopeMapping,
|
ScopeMapping,
|
||||||
)
|
)
|
||||||
|
from authentik.providers.oauth2.utils import cors_allow_any
|
||||||
|
|
||||||
LOGGER = get_logger()
|
LOGGER = get_logger()
|
||||||
|
|
||||||
|
@ -103,9 +104,10 @@ class ProviderInfoView(View):
|
||||||
provider: OAuth2Provider = get_object_or_404(
|
provider: OAuth2Provider = get_object_or_404(
|
||||||
OAuth2Provider, pk=application.provider_id
|
OAuth2Provider, pk=application.provider_id
|
||||||
)
|
)
|
||||||
response = JsonResponse(
|
return JsonResponse(self.get_info(provider), json_dumps_params={"indent": 2})
|
||||||
self.get_info(provider), json_dumps_params={"indent": 2}
|
|
||||||
)
|
|
||||||
response["Access-Control-Allow-Origin"] = "*"
|
|
||||||
|
|
||||||
|
def dispatch(self, request: HttpRequest, *args: Any, **kwargs: Any) -> HttpResponse:
|
||||||
|
# Since this view only supports get, we can statically set the CORS headers
|
||||||
|
response = super().dispatch(request, *args, **kwargs)
|
||||||
|
cors_allow_any(request, response)
|
||||||
return response
|
return response
|
||||||
|
|
Reference in a new issue