Getting a 403 on root requests when using a ResourceHandler and custom handler in Jetty

前端 未结 2 1485
暗喜
暗喜 2021-01-19 06:19

In (embedded) Jetty, I\'m trying to use a ResourceHandler to serve static files and a custom handler to respond to dynamic requests. Based on this page I have a setup that l

2条回答
  •  轮回少年
    2021-01-19 07:21

    My solution:

    • put MyHandler on a differnt context path than "/" e.g. "/index"
    • use a rewrite rule to intercept calls to "/" and redirect them to "/index"

    The code I use looks like this:

    RewriteHandler rewriteHandler = new RewriteHandler();
    rewriteHandler.setRewriteRequestURI(true);
    rewriteHandler.setRewritePathInfo(false);
    rewriteHandler.setOriginalPathAttribute("requestedPath");
    RewriteRegexRule rewriteIndex = new RewriteRegexRule();
    rewriteIndex.setRegex("^/$");
    rewriteIndex.setReplacement("/index.html");
    rewriteHandler.addRule(rewriteIndex);
    rewriteHandler.setHandler(rootHandlerCollection);
    server.setHandler(rewriteHandler);
    

    The regex ensures to only match the exact path, so that "/whatever" is still first handled by the ResourceHandler.

提交回复
热议问题