from django.urls import re_path, path from oauth2_provider import views from rest_framework import routers from .views.oauth_views import IntrospectTokenView, IntrospectApplicationView, TokenView, GooyalRevokeTokenView from .views import apis as api_views from .views import pages app_name = "gooyal_oauth2" base_urlpatterns = [ re_path(r"^authorize/$", views.AuthorizationView.as_view(), name="authorize"), re_path(r"^token/$", TokenView.as_view(), name="token"), re_path(r"^revoke_token/$", views.RevokeTokenView.as_view(), name="revoke-token"), re_path(r"^introspect/$", IntrospectTokenView.as_view(), name="introspect"), re_path(r"^introspect_application/$", IntrospectApplicationView.as_view(), name="introspect-application"), ] router = routers.SimpleRouter() router.register(r'apis/applications', api_views.ApplicationViewSet, basename='application') management_urlpatterns = [ path("applications/", pages.ApplicationListView.as_view(), name="application_list"), path('applications/register/', pages.ApplicationCreateView.as_view(), name='application_create'), path("applications//", pages.ApplicationDetailView.as_view(), name="application_detail"), path("applications//update/", pages.ApplicationUpdateView.as_view(), name="application_update"), path("applications//scopes/", pages.ApplicationScopeListView.as_view(), name="application_scope_list"), path("applications//scopes/register/", pages.ApplicationScopeCreateView.as_view(), name="application_scope_create"), path("applications//scopes//", pages.ApplicationScopeDetailView.as_view(), name="application_scope_detail"), path("applications//scopes//update/", pages.ApplicationScopeUpdateView.as_view(), name="application_scope_update"), # Token management views # re_path(r"^authorized_tokens/$", views.AuthorizedTokensListView.as_view(), name="authorized-token-list"), # re_path( # r"^authorized_tokens/(?P[\w-]+)/delete/$", # views.AuthorizedTokenDeleteView.as_view(), # name="authorized-token-delete", # ), ] oidc_urlpatterns = [ # .well-known/openid-configuration/ is deprecated # https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig # does not specify a trailing slash # Support for trailing slash shall be removed in a future release. re_path( r"^\.well-known/openid-configuration/?$", views.ConnectDiscoveryInfoView.as_view(), name="oidc-connect-discovery-info", ), re_path(r"^\.well-known/jwks.json$", views.JwksInfoView.as_view(), name="jwks-info"), re_path(r"^userinfo/$", views.UserInfoView.as_view(), name="user-info"), re_path(r"^logout/$", views.RPInitiatedLogoutView.as_view(), name="rp-initiated-logout"), ] urlpatterns = base_urlpatterns + management_urlpatterns + oidc_urlpatterns + router.urls