summaryrefslogtreecommitdiff
path: root/service/http/config.go
diff options
context:
space:
mode:
authorAnton Titov <[email protected]>2019-06-24 12:49:43 +0300
committerGitHub <[email protected]>2019-06-24 12:49:43 +0300
commit464baf2eb7bd87ed80332280e8f73faa2d495746 (patch)
tree93838ae9f56525983980a3f76ab60febfdfcf3d7 /service/http/config.go
parent85126b000d140efdd99573e44241ee1e8b84d3c5 (diff)
parent3b16dd837a203fc4865e94a031b64a83080e12ef (diff)
Merge pull request #164 from ovr/middlewares-headers
Middlewares headers
Diffstat (limited to 'service/http/config.go')
-rw-r--r--service/http/config.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/service/http/config.go b/service/http/config.go
index 5454f124..e2f42626 100644
--- a/service/http/config.go
+++ b/service/http/config.go
@@ -33,10 +33,40 @@ type Config struct {
// HTTP2 configuration
HTTP2 *HTTP2Config
+ // Middlewares
+ Middlewares *MiddlewaresConfig
+
// Workers configures rr server and worker pool.
Workers *roadrunner.ServerConfig
}
+type MiddlewaresConfig struct {
+ Headers *HeaderMiddlewareConfig
+ CORS *CORSMiddlewareConfig
+}
+
+type CORSMiddlewareConfig struct {
+ AllowedOrigin string
+ AllowedMethods string
+ AllowedHeaders string
+ AllowCredentials *bool
+ ExposedHeaders string
+ MaxAge int
+}
+
+type HeaderMiddlewareConfig struct {
+ CustomRequestHeaders map[string]string
+ CustomResponseHeaders map[string]string
+}
+
+func (c *MiddlewaresConfig) EnableCORS() bool {
+ return c.CORS != nil
+}
+
+func (c *MiddlewaresConfig) EnableHeaders() bool {
+ return c.Headers.CustomRequestHeaders != nil || c.Headers.CustomResponseHeaders != nil
+}
+
type FCGIConfig struct {
// Port and port to handle as http server.
Address string
@@ -73,6 +103,10 @@ func (c *Config) EnableHTTP() bool {
return c.Address != ""
}
+func (c *Config) EnableMiddlewares() bool {
+ return c.Middlewares != nil
+}
+
// EnableTLS returns true if rr must listen TLS connections.
func (c *Config) EnableTLS() bool {
return c.SSL.Key != "" || c.SSL.Cert != ""