configure introspection correctly
Some checks failed
Build and Publish / build-release (push) Failing after 28s

This commit is contained in:
2026-05-13 16:22:46 -05:00
parent 6552e22121
commit 3d66db2386
2 changed files with 8 additions and 7 deletions

View File

@@ -67,8 +67,8 @@ defmodule PolicyServiceWeb.Plugs.AuthorizeRoles do
defp get_roles_map(conn, roles_claim) do defp get_roles_map(conn, roles_claim) do
case conn.private[Oidcc.Plug.IntrospectToken] do case conn.private[Oidcc.Plug.IntrospectToken] do
%{claims: %{^roles_claim => %{} = roles_map}} -> %{extra: %{^roles_claim => %{} = roles_map}} ->
role = Map.get(roles_map, roles_claim, %{}) Map.get(roles_map, roles_claim, %{})
role role
_ -> _ ->

View File

@@ -15,7 +15,7 @@ defmodule PolicyServiceWeb.Router do
plug PolicyServiceWeb.Plugs.RequireOrganizationId plug PolicyServiceWeb.Plugs.RequireOrganizationId
plug PolicyServiceWeb.Plugs.ExtractOrganizationId plug PolicyServiceWeb.Plugs.ExtractOrganizationId
plug :validate plug :introspect
plug :authorize_roles plug :authorize_roles
end end
@@ -46,17 +46,18 @@ defmodule PolicyServiceWeb.Router do
get "/", OpenApiSpex.Plug.SwaggerUI, path: "/api/openapi" get "/", OpenApiSpex.Plug.SwaggerUI, path: "/api/openapi"
end end
def validate(conn, _opts) do def introspect(conn, _opts) do
zitadel = Application.get_env(:policy_service, :zitadel) zitadel = Application.get_env(:policy_service, :zitadel)
opts = opts =
Oidcc.Plug.ValidateJwtToken.init( Oidcc.Plug.IntrospectToken.init(
provider: PolicyService.ZitadelProvider, provider: PolicyService.ZitadelProvider,
client_id: zitadel[:client_id], client_id: zitadel[:client_id],
client_secret: zitadel[:client_secret] client_secret: zitadel[:client_secret],
token_introspection_opts: %{client_self_only: false}
) )
Oidcc.Plug.ValidateJwtToken.call( Oidcc.Plug.IntrospectToken.call(
conn, conn,
opts opts
) )