30 lines
962 B
Haskell
30 lines
962 B
Haskell
-- SPDX-FileCopyrightText: 2024 UniWorX Systems
|
|
-- SPDX-FileContributor: David Mosbach <david.mosbach@uniworx.de>
|
|
--
|
|
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
{-# Language TypeApplications #-}
|
|
|
|
module Main (main) where
|
|
|
|
import UniWorX
|
|
import Server
|
|
import SSO (CustomRoutes, customRoutes)
|
|
import Control.Applicative ((<|>))
|
|
import Database.Persist (Entity(..))
|
|
import System.Environment (lookupEnv)
|
|
import qualified Data.Map as M
|
|
import qualified Data.Text as T
|
|
|
|
main :: IO ()
|
|
main = do
|
|
port <- determinePort
|
|
putStrLn $ "Try: http://localhost:" ++ show port ++ "/auth?scope=ID%20Profile&client_id=42&response_type=code&redirect_uri=http:%2F%2Flocalhost:0000%2F"
|
|
initDB
|
|
runMockServerWithRoutes @(Entity User) @(M.Map T.Text T.Text) @CustomRoutes port customRoutes
|
|
where
|
|
determinePort :: IO Int
|
|
determinePort = do
|
|
Just port <- lookupEnv "OAUTH2_SERVER_PORT" >>= \p -> return $ p <|> Just "9443"
|
|
return $ read @Int port
|