mirror of
https://github.com/danielmiessler/Fabric.git
synced 2026-02-11 22:44:59 -05:00
### CHANGES - Introduce `cmd` directory for all main application binaries. - Move all Go packages into the `internal` directory. - Rename the `restapi` package to `server` for clarity. - Consolidate patterns and strategies into a new `data` directory. - Group all auxiliary scripts into a new `scripts` directory. - Move all documentation and images into a `docs` directory. - Update all Go import paths to reflect the new structure. - Adjust CI/CD workflows and build commands for new layout.
28 lines
505 B
Go
28 lines
505 B
Go
package restapi
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
const APIKeyHeader = "X-API-Key"
|
|
|
|
func APIKeyMiddleware(apiKey string) gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
headerApiKey := c.GetHeader(APIKeyHeader)
|
|
|
|
if headerApiKey == "" {
|
|
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Missing API Key"})
|
|
return
|
|
}
|
|
|
|
if headerApiKey != apiKey {
|
|
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Wrong API Key"})
|
|
return
|
|
}
|
|
|
|
c.Next()
|
|
}
|
|
}
|