Packages
samly
0.7.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/router.ex
defmodule Samly.Router do
@moduledoc false
use Plug.Router
alias Samly.Helper
plug :secure_samly
plug :check_provider_state
plug :match
plug :dispatch
forward "/auth", to: Samly.AuthRouter
forward "/sp", to: Samly.SPRouter
match _ do
conn |> send_resp(404, "not_found")
end
defp secure_samly(conn, _opts) do
conn
|> register_before_send(fn connection ->
connection
|> put_resp_header("Cache-Control", "no-cache")
|> put_resp_header("Pragma", "no-cache")
|> put_resp_header("X-Frame-Options", "SAMEORIGIN")
|> put_resp_header("X-XSS-Protection", "1; mode=block")
|> put_resp_header("X-Content-Type-Options", "nosniff")
end)
end
defp check_provider_state(conn, _opts) do
sp = Helper.get_sp()
idp_metadata = Helper.get_idp_metadata()
if sp == nil || idp_metadata == nil do
conn
|> send_resp(500, "Samly Provider not initialized")
|> halt()
else
conn
end
end
end