diff --git a/lib/mv/config.ex b/lib/mv/config.ex index 8b8c088..1f94a24 100644 --- a/lib/mv/config.ex +++ b/lib/mv/config.ex @@ -367,22 +367,24 @@ defmodule Mv.Config do @spec oidc_client_secret() :: String.t() | nil def oidc_client_secret do case Application.get_env(:mv, :oidc) do - oidc when is_list(oidc) -> oidc_client_secret_from_config(Keyword.get(oidc, :client_secret)) - _ -> env_or_setting("OIDC_CLIENT_SECRET", :oidc_client_secret) + oidc when is_list(oidc) -> + case Keyword.get(oidc, :client_secret) do + nil -> + env_or_setting("OIDC_CLIENT_SECRET", :oidc_client_secret) + + secret when is_binary(secret) -> + s = String.trim(secret) + if s != "", do: s, else: env_or_setting("OIDC_CLIENT_SECRET", :oidc_client_secret) + + _ -> + env_or_setting("OIDC_CLIENT_SECRET", :oidc_client_secret) + end + + _ -> + env_or_setting("OIDC_CLIENT_SECRET", :oidc_client_secret) end end - defp oidc_client_secret_from_config(nil), - do: env_or_setting("OIDC_CLIENT_SECRET", :oidc_client_secret) - - defp oidc_client_secret_from_config(secret) when is_binary(secret) do - s = String.trim(secret) - if s != "", do: s, else: env_or_setting("OIDC_CLIENT_SECRET", :oidc_client_secret) - end - - defp oidc_client_secret_from_config(_), - do: env_or_setting("OIDC_CLIENT_SECRET", :oidc_client_secret) - @doc """ Returns the OIDC admin group name (for role sync). ENV first, then Settings. """