Added minimal example of using kerberos
This commit is contained in:
parent
fbf4d9c4d3
commit
52f2051e8b
42
yesod-auth/kerberos.hs
Normal file
42
yesod-auth/kerberos.hs
Normal file
@ -0,0 +1,42 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
import Yesod.Form
|
||||
import Yesod.Auth.Kerberos
|
||||
|
||||
data Kerberos = Kerberos
|
||||
type Handler = GHandler Kerberos Kerberos
|
||||
|
||||
mkYesod "Kerberos" [parseRoutes|
|
||||
/ RootR GET
|
||||
/after AfterLoginR GET
|
||||
/auth AuthR Auth getAuth
|
||||
|]
|
||||
|
||||
getRootR :: Handler ()
|
||||
getRootR = redirect RedirectTemporary $ AuthR LoginR
|
||||
|
||||
getAfterLoginR :: Handler RepHtml
|
||||
getAfterLoginR = defaultLayout $ return ()
|
||||
|
||||
instance Yesod Kerberos where
|
||||
approot _ = "http://localhost:3000"
|
||||
|
||||
instance YesodAuth Kerberos where
|
||||
type AuthId Kerberos = String
|
||||
loginDest _ = AfterLoginR
|
||||
logoutDest _ = AuthR LoginR
|
||||
getAuthId _ = do
|
||||
liftIO $ putStrLn "getAuthId"
|
||||
return $ Just "foo"
|
||||
authPlugins = [authKerberos]
|
||||
|
||||
instance RenderMessage Kerberos FormMessage where
|
||||
renderMessage _ _ = defaultFormMessage
|
||||
|
||||
main :: IO ()
|
||||
main = warpDebug 3000 Kerberos
|
||||
Loading…
Reference in New Issue
Block a user