Implemented Authentication

+ Basic Authentication
This commit is contained in:
Daniel Legt 2024-01-21 18:40:40 +02:00
parent 07dec16aa4
commit cbe252fe94
4 changed files with 29 additions and 1 deletions

View File

@ -13,6 +13,8 @@ type DHConfig struct {
MaxHistoryAge int `json:"maxHistoryAge"`
DatabaseFilePath string
Listen string
IdentityUsername string
IdentityPassword string
}
func GetConfiguration() DHConfig {
@ -25,6 +27,8 @@ func GetConfiguration() DHConfig {
DiskFetchFrequency: 5, // default value
MaxHistoryAge: 2592000, // default value
DatabaseFilePath: "./data.sqlite",
IdentityUsername: "admin",
IdentityPassword: "admin",
Listen: ":8080",
}
@ -49,5 +53,13 @@ func GetConfiguration() DHConfig {
config.DatabaseFilePath = val
}
if val, exists := os.LookupEnv("IDENTITY_USERNAME"); exists {
config.IdentityUsername = val
}
if val, exists := os.LookupEnv("IDENTITY_PASSWORD"); exists {
config.IdentityPassword = val
}
return config
}

View File

@ -0,0 +1,11 @@
package web
import "github.com/gin-gonic/gin"
func BasicAuthMiddleware(username, password string) gin.HandlerFunc {
authorized := gin.Accounts{
username: password,
}
return gin.BasicAuth(authorized)
}

View File

@ -2,12 +2,16 @@ package web
import (
"github.com/gin-gonic/gin"
"tea.chunkbyte.com/kato/drive-health/lib/config"
)
func SetupRouter() *gin.Engine {
// Initialize the Gin engine
cfg := config.GetConfiguration()
r := gin.Default()
r.Use(BasicAuthMiddleware(cfg.IdentityUsername, cfg.IdentityPassword))
// Setup Health Pings
setupHealth(r)
// Setup Api

View File

@ -17,11 +17,12 @@ import (
func main() {
// Init the database
svc.InitDB()
cfg := config.GetConfiguration()
router := web.SetupRouter()
srv := &http.Server{
Addr: config.GetConfiguration().Listen,
Addr: cfg.Listen,
Handler: router,
}