126 lines
2 KiB
Go
126 lines
2 KiB
Go
// Copyright (C) 2022 Marius Schellenberger
|
|
|
|
package server
|
|
|
|
type route struct {
|
|
Path string
|
|
Handler ctxHandler
|
|
Methods []string
|
|
}
|
|
|
|
const (
|
|
root = "/"
|
|
login = root + "login"
|
|
totp = root + "totp"
|
|
sessions = root + "sessions"
|
|
consent = root + "consent"
|
|
users = root + "users"
|
|
logout = root + "logout"
|
|
auth = root + "auth/"
|
|
uroot = root + "user/"
|
|
|
|
userNew = uroot + "new"
|
|
userEdit = uroot + "edit/{user:[a-zA-Z0-9]+$}"
|
|
userDel = uroot + "del/{user:[a-zA-Z0-9]+$}"
|
|
userTotp = uroot + "totp/{user:[a-zA-Z0-9]+$}"
|
|
userSessions = uroot + "sessions/{user:[a-zA-Z0-9]+$}"
|
|
userUnlock = uroot + "unlock/{user:[a-zA-Z0-9]+$}"
|
|
|
|
authBasic = auth + "basic"
|
|
)
|
|
|
|
var routes = []route{
|
|
{
|
|
root,
|
|
jwtHandler(
|
|
indexHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
login,
|
|
jwtHandler(
|
|
loginHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
totp,
|
|
jwtHandler(
|
|
totpAuthHandler(
|
|
loginTotpHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
consent,
|
|
jwtHandler(
|
|
authHandler(
|
|
consentHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
sessions,
|
|
jwtHandler(
|
|
authHandler(
|
|
sessionsHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
logout,
|
|
jwtHandler(
|
|
logoutHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
users,
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
usersHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
userNew,
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
userNewHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
userEdit,
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userEditHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
userDel,
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userDelHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
userTotp,
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userTotpHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
userSessions,
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userSessionsHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
userUnlock,
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
userUnlockHandler)),
|
|
[]string{"POST"},
|
|
},
|
|
{
|
|
authBasic,
|
|
authBasicHandler,
|
|
[]string{"GET"},
|
|
},
|
|
}
|