diff --git a/docs/release-notes/release-notes-0.14.3.md b/docs/release-notes/release-notes-0.14.3.md new file mode 100644 index 000000000..6b616d7a0 --- /dev/null +++ b/docs/release-notes/release-notes-0.14.3.md @@ -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 diff --git a/lnd.go b/lnd.go index 6a6d94658..eb57995d2 100644 --- a/lnd.go +++ b/lnd.go @@ -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(