28 lines
639 B
Go
28 lines
639 B
Go
package middleware
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"git.clustercockpit.org/moebiusband/go-http-skeleton/internal/auth"
|
|
"git.clustercockpit.org/moebiusband/go-http-skeleton/web"
|
|
)
|
|
|
|
func SecuredCheck(next http.Handler) http.Handler {
|
|
authHandle := auth.GetAuthInstance()
|
|
|
|
return authHandle.Auth(
|
|
// On success;
|
|
next,
|
|
|
|
// On failure:
|
|
func(rw http.ResponseWriter, r *http.Request, err error) {
|
|
rw.WriteHeader(http.StatusUnauthorized)
|
|
web.RenderTemplate(rw, "login", web.PageData{
|
|
Title: "Authentication failed - ClusterCockpit",
|
|
MsgType: "alert-danger",
|
|
Message: err.Error(),
|
|
Redirect: r.RequestURI,
|
|
})
|
|
})
|
|
}
|