trying to fix routes

This commit is contained in:
Steve White 2024-10-29 19:40:42 -05:00
parent c604251b7a
commit 4d9d722940
2 changed files with 22 additions and 6 deletions

18
auth.go
View File

@ -108,7 +108,7 @@ func LoginHandler(w http.ResponseWriter, r *http.Request) {
json.NewEncoder(w).Encode(LoginResponse{Token: tokenString})
}
// AuthMiddleware is a middleware function that checks for a valid JWT token in the request header and enables CORS.
// authMiddleware is a middleware function that checks for a valid JWT token in the request header and enables CORS.
func AuthMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log := GetLogger()
@ -124,11 +124,21 @@ func AuthMiddleware(next http.Handler) http.Handler {
return
}
// Get the token from the request header
// Check if this is a browser requesting HTML
acceptHeader := r.Header.Get("Accept")
isBrowserRequest := strings.Contains(acceptHeader, "text/html")
// If it's a browser request for HTML, always serve the React app
if isBrowserRequest {
http.Redirect(w, r, "/index.html", http.StatusSeeOther)
return
}
// From here on, we're dealing with actual API requests
tokenString := r.Header.Get("Authorization")
if tokenString == "" {
if log != nil {
log.Warn("Request rejected: missing Authorization header")
log.Warn("Request rejected: missing Authorization header for path: %s", r.URL.Path)
}
http.Error(w, "Authorization header missing", http.StatusUnauthorized)
return
@ -178,4 +188,4 @@ func AuthMiddleware(next http.Handler) http.Handler {
// Call the next handler in the chain
next.ServeHTTP(w, r)
})
}
}

10
main.go
View File

@ -22,19 +22,21 @@ var (
)
func main() {
log := GetLogger()
// Load configuration
var err error
config, err = loadAndValidateConfig()
if err != nil {
log.Fatalf("Failed to load config: %v", err)
}
log.Printf("Config loaded successfully in main(), DB path %s\n", config.DatabasePath)
// Set up logging BEFORE logging config details
if err := setupLogging(config.LogFile); err != nil {
log.Fatalf("Failed to set up logging: %v", err)
}
log := GetLogger()
log.Printf("Config loaded successfully in main(), DB path %s\n", config.DatabasePath)
// Now that logging is set up, log the config details
logConfigDetails(config)
@ -65,6 +67,10 @@ func main() {
func loadAndValidateConfig() (*Config, error) {
configFile := os.Getenv("BOXES_API_CONFIG")
if configFile == "" {
fmt.Println("BOXES_API_CONFIG not set") // print because logger isn't alive yet.
configFile = "./config/config.yaml"
}
config, err := LoadConfig(configFile)
if err != nil || config == nil {
return nil, fmt.Errorf("failed to load config: %v", err)