blob: 0768caaba2d338104de94b03be60f4474d06b2e1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
defmodule MatrixAppService.AuthPlug do
@behaviour Plug
import Plug.Conn
require Logger
@impl Plug
def init(_opts) do
Application.fetch_env!(:matrix_app_service, :homeserver_token)
end
@impl Plug
def call(%Plug.Conn{params: %{"access_token" => hs_token}} = conn, config_hs_token)
when hs_token == config_hs_token do
conn
end
def call(conn, _config_hs_token) do
Logger.warn("Received invalid homeserver token")
conn
|> put_status(:unauthorized)
|> Phoenix.Controller.put_view(MatrixAppServiceWeb.ErrorView)
|> Phoenix.Controller.render("401.json")
|> halt
end
end
|