diff --git a/lib/ueberauth/strategy/nusso/api.ex b/lib/ueberauth/strategy/nusso/api.ex index f1cb5d3..8c2b694 100644 --- a/lib/ueberauth/strategy/nusso/api.ex +++ b/lib/ueberauth/strategy/nusso/api.ex @@ -8,17 +8,17 @@ defmodule Ueberauth.Strategy.NuSSO.API do @doc "Returns the URL to the NuSSO server's login page" def login_url(callback) do - with {:ok, response} <- get("get-ldap-redirect-url", goto: callback) do + with {:ok, response} <- get("/agentless-websso/get-ldap-redirect-url", goto: callback) do response |> Map.get(:redirecturl) end end @doc "Redeem an NuSSO SSO Token for the user attributes" def redeem_token(token) do - case get("validateWebSSOToken", webssotoken: token) do + case get("/agentless-websso/validateWebSSOToken", webssotoken: token) do {:ok, %{netid: netid}} -> if settings(:include_attributes, false), - do: get_directory_attributes(token, %{uid: netid}), + do: get_directory_attributes(%{uid: netid}, token), else: {:ok, %{uid: netid}} other -> @@ -41,9 +41,9 @@ defmodule Ueberauth.Strategy.NuSSO.API do defp consumer_key, do: settings(:consumer_key) - defp get_directory_attributes(token, extra) do + defp get_directory_attributes(%{uid: uid} = extra, token) do response = - case get("validate-with-directory-search-response", webssotoken: token) do + case get("/directory-search/res/netid/bas/#{uid}", webssotoken: token) do {:ok, response} -> response _ -> %{results: []} end diff --git a/mix.exs b/mix.exs index 21b3736..3a87094 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule UeberauthOpenam.MixProject do use Mix.Project - @version "2.0.0" + @version "2.1.0" @url "https://github.com/nulib/ueberauth_nusso" def project do diff --git a/test/support/mock_endpoint.ex b/test/support/mock_endpoint.ex index 2f82f68..60767b3 100644 --- a/test/support/mock_endpoint.ex +++ b/test/support/mock_endpoint.ex @@ -4,7 +4,7 @@ defmodule Ueberauth.NuSSO.MockEndpoint do """ @behaviour HTTPoison.Base - @base_url "https://test.example.edu/agentless-websso" + @base_url "https://test.example.edu" @non_json_response """ @@ -13,7 +13,7 @@ defmodule Ueberauth.NuSSO.MockEndpoint do """ @redirecturl "https://test-nusso.example.edu/nusso/XUI/?#login&realm=test&authIndexType=service&service=ldap-registry" - def get("#{@base_url}/get-ldap-redirect-url", headers) do + def get("#{@base_url}/agentless-websso/get-ldap-redirect-url", headers) do with goto <- headers |> Enum.into(%{}) |> Map.get("goto"), url <- [@redirecturl, "goto=#{goto}"] |> Enum.join("&") do send_headers(headers) @@ -21,12 +21,12 @@ defmodule Ueberauth.NuSSO.MockEndpoint do end end - def get("#{@base_url}/validateWebSSOToken", headers) do + def get("#{@base_url}/agentless-websso/validateWebSSOToken", headers) do send_headers(headers) headers |> Enum.into(%{}) |> get_in(["webssotoken"]) |> validate_response() end - def get("#{@base_url}/validate-with-directory-search-response", headers) do + def get("#{@base_url}/directory-search/res/netid/bas/" <> _uid, headers) do send_headers(headers) headers |> Enum.into(%{}) |> get_in(["webssotoken"]) |> directory_search_response() end