Merge pull request #6359 from guggero/fix-rest-proxy-fallback

lnd: disable REST proxy HTTP method fallback
This commit is contained in:
Olaoluwa Osuntokun 2022-03-23 16:28:41 -07:00 committed by GitHub
commit bd5e29ec83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 1 deletions

View File

@ -0,0 +1,13 @@
# Release Notes
## Bug fixes
* The REST proxy (`grpc-gateway` library) had a fallback that redirected `POST`
requests to another endpoint _with the same URI_ if no endpoint for `POST` was
registered. [This default behavior was turned
off](https://github.com/lightningnetwork/lnd/pull/6359), enabling strict
HTTP method matching.
# Contributors (Alphabetical Order)
* Oliver Gugger

11
lnd.go
View File

@ -973,7 +973,16 @@ func startRestProxy(cfg *Config, rpcServer *rpcServer, restDialOpts []grpc.DialO
},
},
)
mux := proxy.NewServeMux(customMarshalerOption)
mux := proxy.NewServeMux(
customMarshalerOption,
// Don't allow falling back to other HTTP methods, we want exact
// matches only. The actual method to be used can be overwritten
// by setting X-HTTP-Method-Override so there should be no
// reason for not specifying the correct method in the first
// place.
proxy.WithDisablePathLengthFallback(),
)
// Register our services with the REST proxy.
err := lnrpc.RegisterStateHandlerFromEndpoint(