| The various Puppet::HTTP::Service::* methods need to URL encode the HTTP request path. It's not currently an issue for the CA or Report services in practice, because the request path is something like /puppet/v3/certificate/<certname> where <certname> is generally safe US-ASCII. However, in theory it could contain restricted characters based on this regex, and we'll soon support arbitrary file paths in the FileServer service, e.g. /puppet/v3/file_metadata/module/mymodule/a path with spaces" REST based requests using the indirector current encode the URL path using:
URI.parse(Puppet::Util.uri_encode(key))
|
So we should do something similar to maintain compatibility. |