This explains it, I was having headache trying to figure out the odd behavior.
The problem here is that Knox combines all the rewrites rules into filters and then it tries to do a best match based on the pattern, in case where there is no match Knox engine will go for the next best match, This should be fixed in the upcoming release 1.1.0 by https://issues.apache.org/jira/browse/KNOX-1157. I know you are on 0.12, so applying the patch might be tricky due to package name changes, you will have to update the patch with the package names for 0.12.0 (org.apache.hadoop.*) If you decide to go down this patch I would be eager to know how it went. Best, Sandeep On Tue, May 22, 2018 at 4:11 PM, Shawn Weeks <[email protected]> wrote: > Well this is even weirder it turns out the issue is being caused by a rule > in the Spark History UI Service. > > > <rule dir="OUT" name="SPARKHISTORYUI/sparkhistory/outbound/static/jquery" > pattern="/static/{jquery=jquery*.min.js}"> > <rewrite template="{$frontend[url]}/sparkhistory/static/{jquery}"/> > </rule> > > > This rule appears to be bleeding over into the HDFS UI Service even though > service.xml for Spark has all the paths mapped out explicitly. I feel like > I'm misunderstanding something about how Knox is supposed to work. > > > Thanks > > Shawn Weeks > > ________________________________ > From: Shawn Weeks <[email protected]> > Sent: Tuesday, May 22, 2018 2:58:56 PM > To: [email protected] > Subject: Other Interesting Rewrite Failures > > Trying to identify what patch if any resolves the following oddity for > Knox 0.12. > > > Consider the following rule found in the HDFSUI Service. > > > <rule dir="OUT" name="HDFSUI/content/static" pattern="/static/{**}"> > <rewrite template="{gateway.url}/hdfs/static/{**}"/> > </rule> > > > And the following HTML Snippet > > <script type="text/javascript" src="/static/jquery-1.10.2. > min.js"></script> > <script type="text/javascript" src="/static/bootstrap-3.0.2/ > js/bootstrap.min.js"></script> > <script type="text/javascript" src="/static/dust-full-2.0.0. > min.js"></script> > <script type="text/javascript" src="/static/dust-helpers-1.1. > 1.min.js"></script> > <script type="text/javascript" src="/static/dfs-dust.js"></script> > <script type="text/javascript" src="/static/rest-csrf.js"></script> > > And finally the debug log. > No rule matching URL: /static/jquery-1.10.2.min.js, direction: OUT > Rewrote URL: /static/bootstrap-3.0.2/js/bootstrap.min.js, direction: OUT > via implicit rule: HDFSUI/content/static to URL: > https://knox.test.org:443/gateway/admin/hdfs/static/ > bootstrap-3.0.2/js/bootstrap.min.js > Rewrote URL: /static/dust-full-2.0.0.min.js, direction: OUT via implicit > rule: HDFSUI/content/static to URL: https://knox.test.org:443/ > gateway/admin/hdfs/static/dust-full-2.0.0.min.js > Rewrote URL: /static/dust-helpers-1.1.1.min.js, direction: OUT via > implicit rule: HDFSUI/content/static to URL: https://knox.test.org:443/ > gateway/admin/hdfs/static/dust-helpers-1.1.1.min.js > Rewrote URL: /static/dfs-dust.js, direction: OUT via implicit rule: > HDFSUI/content/static to URL: https://knox.test.org:443/ > gateway/admin/hdfs/static/dfs-dust.js > Rewrote URL: /static/rest-csrf.js, direction: OUT via implicit rule: > HDFSUI/content/static to URL: https://knox.test.org:443/ > gateway/admin/hdfs/static/rest-csrf.js > > > After lots of testing I've determined that Knox will not rewrite anything > like this. > > <script type="text/javascript" src="/static/jquery.min.js"></script> > <a href="/static/jquery.min.js">Hello World </a> > > That's oddly specific. Any variation I can try that includes jquery.min.js > won't rewrite but jjquery.min.js will. > > Thanks > Shawn Weeks > >
