Support encoded path in router (#1347)
Encoded path means the URL path contains encoded string like "/foo%2Fbar". Gorilla/Mux by default doesn't enable encoded path support, you need to enable it when initializing the router. This PR adds a new environment variable USE_ENCODED_PATH to the router deployment to enable encoded path support.
This commit is contained in:
+10
-1
@@ -63,7 +63,16 @@ import (
|
||||
// request url ---[trigger]---> Function(name, deployment) ----[deployment]----> Function(name, uid) ----[pool mgr]---> k8s service url
|
||||
|
||||
func router(ctx context.Context, logger *zap.Logger, httpTriggerSet *HTTPTriggerSet, resolver *functionReferenceResolver) *mutableRouter {
|
||||
mr := NewMutableRouter(logger, mux.NewRouter())
|
||||
var mr *mutableRouter
|
||||
|
||||
// see issue https://github.com/fission/fission/issues/1317
|
||||
useEncodedPath, _ := strconv.ParseBool(os.Getenv("USE_ENCODED_PATH"))
|
||||
if useEncodedPath {
|
||||
mr = NewMutableRouter(logger, mux.NewRouter().UseEncodedPath())
|
||||
} else {
|
||||
mr = NewMutableRouter(logger, mux.NewRouter())
|
||||
}
|
||||
|
||||
httpTriggerSet.subscribeRouter(ctx, mr, resolver)
|
||||
return mr
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user