Packages
samly
0.8.0
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0
1.0.0-rc.1
retired
1.0.0-rc.0
retired
0.10.1
retired
0.10.0
retired
0.9.3
retired
0.9.2
retired
0.9.1
retired
0.9.0
retired
0.8.4
retired
0.8.3
retired
0.8.2
retired
0.8.1
retired
0.8.0
retired
0.7.2
retired
0.7.1
retired
0.7.0
retired
0.6.3
retired
0.6.2
retired
0.6.1
retired
0.6.0
retired
0.5.0
retired
0.4.0
retired
0.1.2
retired
SAML Single-Sign-On Authentication for Plug/Phoenix Applications
Retired package: Use versions >= 1.0.0
Current section
Files
Jump to
Current section
Files
lib/samly/sp_router.ex
defmodule Samly.SPRouter do
@moduledoc false
use Plug.Router
import Plug.Conn
import Samly.RouterUtil, only: [check_idp_id: 2]
plug :fetch_session
plug :match
plug :check_idp_id
plug :dispatch
get "/metadata/*idp_id_seg" do
# TODO: Make a release task to generate SP metadata
conn
|> Samly.SPHandler.send_metadata()
end
post "/consume/*idp_id_seg" do
conn
|> Samly.SPHandler.consume_signin_response()
end
post "/logout/*idp_id_seg" do
cond do
conn.params["SAMLResponse"] != nil ->
Samly.SPHandler.handle_logout_response(conn)
conn.params["SAMLRequest"] != nil ->
Samly.SPHandler.handle_logout_request(conn)
true ->
conn |> send_resp(403, "invalid_request")
end
end
match _ do
conn |> send_resp(404, "not_found")
end
end