viewfs is not the original request, I guess it's part of a html body. Yes this can definitely work, I can provide a patch for oozie. However this sounds like a potential issue for a lot of services(like yarnui, etc), should we change all of them?
On Fri, Oct 27, 2017 at 6:37 AM, Sandeep More <[email protected]> wrote: > Hello Wei Han, > > Do you send 'viewfs://' as a request (like http) ? > > Also, there could be a chance that the protocol could be http or https, so > I think it would be better to handle both in the rewrite rules, for e.g. > > <rule name="test-rule-with-complex-flow" flow="OR"> > <match pattern="http://*:*/**/oozie/"> > <rewrite template="{$serviceUrl[OOZIEUI]}/"/> > </match> > <match pattern="https://*:*/**/oozie/"> > <rewrite template="{$serviceUrl[OOZIEUI]}/"/> > </match> > </rule> > > There could be a better way to handle this, if anyone knows please let me > know ! > > Best, > Sandeep > > > On Fri, Oct 27, 2017 at 1:15 AM, Wei Han <[email protected]> wrote: > >> We have seen some false positives with the current rewrite rules. For >> example the following rule in oozieui will rewrite >> viewfs://ns-default/foo/bar/oozie/myfile.jar to >> http://oozie:11000/oozie/myfile.jar >> <rule dir="IN" name="OOZIEUI/oozie/inbound/root" >> pattern="*://*:*/**/oozie/"> >> <rewrite template="{$serviceUrl[OOZIEUI]}/"/> >> </rule> >> >> The reason is the ** before 'oozie' in the pattern can match any number >> of paths, however in reality any valid url(like https://localhost:844 >> 3/gateway/sandbox/oozie/v1/jobs?action=start) should only have two paths >> before 'oozie', so can we change the pattern to "*://*:*/**/**/oozie/" >> (note the extra slash I added between the stars)? >> >> Another option is to make the scheme explicit in the patter, for example: >> https://*:*/**/oozie/ >> >> Thanks. >> >> >> >
