33 lines
687 B
Go
33 lines
687 B
Go
package handler
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
"certmanager/pkg/auxhttp"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func (hand *Handler) BasicAuth(gctx *gin.Context) {
|
|
var err error
|
|
authHeader := gctx.Request.Header.Get("Authorization")
|
|
if authHeader == "" {
|
|
err = errors.New("Cannot found autentification data")
|
|
auxhttp.SendError(gctx, err)
|
|
return
|
|
}
|
|
username, password, err := auxhttp.ParseAuthBasicHeader(authHeader)
|
|
if err != nil {
|
|
err = fmt.Errorf("Authorization error: %s", err)
|
|
auxhttp.SendError(gctx, err)
|
|
return
|
|
}
|
|
if !hand.lg.ValidateUser(username, password) {
|
|
err = errors.New("Incorrect autentification data")
|
|
auxhttp.SendError(gctx, err)
|
|
return
|
|
}
|
|
gctx.Next()
|
|
}
|