mirror of
https://github.com/lightninglabs/aperture.git
synced 2025-12-17 09:04:19 +01:00
config+proxy: disable static file serving by default
This commit is contained in:
@@ -391,7 +391,9 @@ func createProxy(cfg *config, genInvoiceReq InvoiceRequestGenerator,
|
|||||||
ServiceLimiter: newStaticServiceLimiter(cfg.Services),
|
ServiceLimiter: newStaticServiceLimiter(cfg.Services),
|
||||||
})
|
})
|
||||||
authenticator := auth.NewLsatAuthenticator(minter)
|
authenticator := auth.NewLsatAuthenticator(minter)
|
||||||
return proxy.New(authenticator, cfg.Services, cfg.StaticRoot)
|
return proxy.New(
|
||||||
|
authenticator, cfg.Services, cfg.ServeStatic, cfg.StaticRoot,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// cleanup closes the given server and shuts down the log rotator.
|
// cleanup closes the given server and shuts down the log rotator.
|
||||||
|
|||||||
@@ -61,6 +61,10 @@ type config struct {
|
|||||||
// is located.
|
// is located.
|
||||||
StaticRoot string `long:"staticroot" description:"The folder where the static content is located."`
|
StaticRoot string `long:"staticroot" description:"The folder where the static content is located."`
|
||||||
|
|
||||||
|
// ServeStatic defines if static content should be served from the
|
||||||
|
// directory defined by StaticRoot.
|
||||||
|
ServeStatic bool `long:"servestatic" description:"Flag to enable or disable static content serving."`
|
||||||
|
|
||||||
Etcd *etcdConfig `long:"etcd" description:"Configuration for the etcd instance backing the proxy."`
|
Etcd *etcdConfig `long:"etcd" description:"Configuration for the etcd instance backing the proxy."`
|
||||||
|
|
||||||
Authenticator *authConfig `long:"authenticator" description:"Configuration for the authenticator."`
|
Authenticator *authConfig `long:"authenticator" description:"Configuration for the authenticator."`
|
||||||
|
|||||||
@@ -41,10 +41,22 @@ type Proxy struct {
|
|||||||
// New returns a new Proxy instance that proxies between the services specified,
|
// New returns a new Proxy instance that proxies between the services specified,
|
||||||
// using the auth to validate each request's headers and get new challenge
|
// using the auth to validate each request's headers and get new challenge
|
||||||
// headers if necessary.
|
// headers if necessary.
|
||||||
func New(auth auth.Authenticator, services []*Service, staticRoot string) (
|
func New(auth auth.Authenticator, services []*Service, serveStatic bool,
|
||||||
*Proxy, error) {
|
staticRoot string) (*Proxy, error) {
|
||||||
|
|
||||||
|
// By default the static file server only returns 404 answers for
|
||||||
|
// security reasons. Serving files from the staticRoot directory has to
|
||||||
|
// be enabled intentionally.
|
||||||
|
staticServer := http.NotFoundHandler()
|
||||||
|
if serveStatic {
|
||||||
|
if len(strings.TrimSpace(staticRoot)) == 0 {
|
||||||
|
return nil, fmt.Errorf("staticroot cannot be empty, " +
|
||||||
|
"must contain path to directory that " +
|
||||||
|
"contains index.html")
|
||||||
|
}
|
||||||
|
staticServer = http.FileServer(http.Dir(staticRoot))
|
||||||
|
}
|
||||||
|
|
||||||
staticServer := http.FileServer(http.Dir(staticRoot))
|
|
||||||
proxy := &Proxy{
|
proxy := &Proxy{
|
||||||
staticServer: staticServer,
|
staticServer: staticServer,
|
||||||
authenticator: auth,
|
authenticator: auth,
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ func TestProxyHTTP(t *testing.T) {
|
|||||||
}}
|
}}
|
||||||
|
|
||||||
mockAuth := auth.NewMockAuthenticator()
|
mockAuth := auth.NewMockAuthenticator()
|
||||||
p, err := proxy.New(mockAuth, services, "static")
|
p, err := proxy.New(mockAuth, services, true, "static")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create new proxy: %v", err)
|
t.Fatalf("failed to create new proxy: %v", err)
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ func TestProxyGRPC(t *testing.T) {
|
|||||||
|
|
||||||
// Create the proxy server and start serving on TLS.
|
// Create the proxy server and start serving on TLS.
|
||||||
mockAuth := auth.NewMockAuthenticator()
|
mockAuth := auth.NewMockAuthenticator()
|
||||||
p, err := proxy.New(mockAuth, services, "static")
|
p, err := proxy.New(mockAuth, services, true, "static")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create new proxy: %v", err)
|
t.Fatalf("failed to create new proxy: %v", err)
|
||||||
}
|
}
|
||||||
@@ -269,7 +269,7 @@ func TestWhitelistHTTP(t *testing.T) {
|
|||||||
}}
|
}}
|
||||||
|
|
||||||
mockAuth := auth.NewMockAuthenticator()
|
mockAuth := auth.NewMockAuthenticator()
|
||||||
p, err := proxy.New(mockAuth, services, "static")
|
p, err := proxy.New(mockAuth, services, true, "static")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create new proxy: %v", err)
|
t.Fatalf("failed to create new proxy: %v", err)
|
||||||
}
|
}
|
||||||
@@ -368,7 +368,7 @@ func TestWhitelistGRPC(t *testing.T) {
|
|||||||
|
|
||||||
// Create the proxy server and start serving on TLS.
|
// Create the proxy server and start serving on TLS.
|
||||||
mockAuth := auth.NewMockAuthenticator()
|
mockAuth := auth.NewMockAuthenticator()
|
||||||
p, err := proxy.New(mockAuth, services, "static")
|
p, err := proxy.New(mockAuth, services, true, "static")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create new proxy: %v", err)
|
t.Fatalf("failed to create new proxy: %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ listenaddr: "localhost:8081"
|
|||||||
# cannot handle.
|
# cannot handle.
|
||||||
staticroot: "./static"
|
staticroot: "./static"
|
||||||
|
|
||||||
|
# Should the static file server be enabled that serves files from the directory
|
||||||
|
# specified in `staticroot`?
|
||||||
|
servestatic: false
|
||||||
|
|
||||||
# The log level that should be used for the proxy.
|
# The log level that should be used for the proxy.
|
||||||
#
|
#
|
||||||
# Valid options include: trace, debug, info, warn, error, critical, off.
|
# Valid options include: trace, debug, info, warn, error, critical, off.
|
||||||
|
|||||||
Reference in New Issue
Block a user