diff --git a/README.md b/README.md index 7b917e6..0f27290 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,7 @@ server: host: "0.0.0.0" # Server host to bind to port: 8080 # Server port to bind to allowed_origins: ["*"] # Allowed CORS origins (default: all) + allowed_headers: ["*"] # Allowed CORS headers (default: all) enable_swagger: false # Enable Swagger UI for API docs backends: diff --git a/docs/getting-started/configuration.md b/docs/getting-started/configuration.md index 1ed750e..be4fc6d 100644 --- a/docs/getting-started/configuration.md +++ b/docs/getting-started/configuration.md @@ -17,6 +17,7 @@ server: host: "0.0.0.0" # Server host to bind to port: 8080 # Server port to bind to allowed_origins: ["*"] # Allowed CORS origins (default: all) + allowed_headers: ["*"] # Allowed CORS headers (default: all) enable_swagger: false # Enable Swagger UI for API docs backends: @@ -104,6 +105,7 @@ server: host: "0.0.0.0" # Server host to bind to (default: "0.0.0.0") port: 8080 # Server port to bind to (default: 8080) allowed_origins: ["*"] # CORS allowed origins (default: ["*"]) + allowed_headers: ["*"] # CORS allowed headers (default: ["*"]) enable_swagger: false # Enable Swagger UI (default: false) ``` diff --git a/pkg/config/config.go b/pkg/config/config.go index 3701643..ee57cd2 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -57,6 +57,9 @@ type ServerConfig struct { // Allowed origins for CORS (e.g., "http://localhost:3000") AllowedOrigins []string `yaml:"allowed_origins"` + // Allowed headers for CORS (e.g., "Accept", "Authorization", "Content-Type", "X-CSRF-Token") + AllowedHeaders []string `yaml:"allowed_headers"` + // Enable Swagger UI for API documentation EnableSwagger bool `yaml:"enable_swagger"` @@ -136,6 +139,7 @@ func LoadConfig(configPath string) (AppConfig, error) { Host: "0.0.0.0", Port: 8080, AllowedOrigins: []string{"*"}, // Default to allow all origins + AllowedHeaders: []string{"*"}, // Default to allow all headers EnableSwagger: false, }, Backends: BackendConfig{ diff --git a/pkg/server/routes.go b/pkg/server/routes.go index 6af6a5c..02cfa22 100644 --- a/pkg/server/routes.go +++ b/pkg/server/routes.go @@ -20,7 +20,7 @@ func SetupRouter(handler *Handler) *chi.Mux { r.Use(cors.Handler(cors.Options{ AllowedOrigins: handler.cfg.Server.AllowedOrigins, AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}, - AllowedHeaders: []string{"Accept", "Authorization", "Content-Type", "X-CSRF-Token"}, + AllowedHeaders: handler.cfg.Server.AllowedHeaders, ExposedHeaders: []string{"Link"}, AllowCredentials: false, MaxAge: 300,