You don't even need the ResourceHandler or ContextHandler. Your ServletContextHandler does all of that already. Just set a reasonable ResourceBase there and define a DefaultServlet on url-pattern of `/` (be sure to name the servlet!)
See: https://github.com/jetty-project/embedded-jetty-cookbook/blob/jetty-10.0.x/src/main/java/org/eclipse/jetty/cookbook/DefaultServletFileServer.java You can even have multiple DefaultServlet added serving different content. See: https://github.com/jetty-project/embedded-jetty-cookbook/blob/jetty-10.0.x/src/main/java/org/eclipse/jetty/cookbook/DefaultServletMultipleBases.java If you do it this way, then you get more features, such as request range support, better caching, last-modified support, etag support, etc... Joakim Erdfelt / joa...@webtide.com On Mon, Nov 29, 2021 at 8:23 AM Silvio Bierman <sbier...@jambo-software.com> wrote: > Hi Lachlan, > > Well, that was spot on! I added a call to setResourceBase(directoryPath) > to the ContextHandler (just like is done on the ResourceHandler) and that > does indeed work as intended. > > But to be honest I am confused now. I was surprised to find that > setResourceBase exists at all on the ContextHandler. I was under the > impression the ContextHandler defines the contextPath so it picks up the > requests with URLs that match the path. The ResourceHandler defines the > resourceBase to map URL paths inside the contextPath to directories and > files. The ContextHandler then uses the ResourceHandler to delegate > requests to. Having a resourceBase on the ContextHandler tells me my > understanding of things is wrong (which is not unlikely at all of course). > > Kind regards, > > Silvio > > On 11/29/21 15:01, Lachlan Roberts wrote: > > Silvio, > > I think the fix for this is to add the baseResource to the ContextHandler > as well as on your ResourceHandler. > Try that and let me know if it fixes it for you. > > If that doesn't work revert back to using AllowSymLinkAliasChecker, but > definitely do not use ApproveAliases. > > cheers > > On Tue, Nov 30, 2021 at 12:15 AM Silvio Bierman < > sbier...@jambo-software.com> wrote: > >> Thanks Lachlan, >> >> It is not a big problem for us to skip 10.0.7 and wait for 10.0.8 so >> keeping things as they are now is probably the simplest option. On the >> other hand, if we happen to push out an update of our core application in >> the meantime I may decide to add the ApproveAliases and move to 10.0.7. >> Anyway I will be looking forward to 10.0.8. >> >> Thanks for the help, >> >> Kind regards, >> >> Silvio >> >> >> On 11/29/21 03:02, Lachlan Roberts wrote: >> >> Silvio, >> >> Thanks for the info, I will look into it. >> >> The intention of the AliasChecker change was not to break the usage of >> symlinks but to improve safety. The fact that you have experienced a change >> in behaviour probably means there is a bug in the >> new SymlinkAllowedResourceAliasChecker implementation. >> >> For now you should be able to revert to the previous behaviour by adding >> the AllowSymLinkAliasChecker which has now been deprecated. But we will try >> to get a fix out in the upcoming 10.0.8 release. >> >> cheers >> >> On Mon, Nov 29, 2021 at 12:39 PM Silvio Bierman < >> sbier...@jambo-software.com> wrote: >> >>> Hi Lachlan, >>> >>> An additional observation: >>> >>> Th symbolic link helps us (among other things) to use the same >>> configuration properties in various development and testing environments as >>> we use in most production environments. I manually modified one development >>> configuration to not use the symbolic link and upgraded it to Jetty 10.0.7. >>> And as you expected that does work correctly. >>> >>> Can you explain to me what the issue is with having symbolic links in >>> paths and what the consequence would be if I turned off this behavior in >>> production? I would expect symbolic links in paths to be transparent to the >>> application. >>> >>> Kind regards, >>> >>> Silvio >>> >>> >>> On 11/29/21 00:53, Lachlan Roberts wrote: >>> >>> Hi Silvio, >>> >>> Do you have any symlink in the path to these static resources? If so, >>> this could be related to the AliasChecker changes. You can test if this is >>> related to the AliasCheckers by adding the `ContextHandler.ApproveAliases` >>> to the `ContextHandler` and see if you still get the 404's. But even if >>> this fixes it, do not add `ContextHandler.ApproveAliases` to your >>> production code. >>> >>> Would you be able to post a simple reproducer that works on 10.0.6 but >>> not on 10.0.7? >>> >>> cheers, >>> Lachlan >>> >>> On Sun, Nov 28, 2021 at 2:40 AM Silvio Bierman < >>> sbier...@jambo-software.com> wrote: >>> >>>> Hello all, >>>> >>>> I use an embedded Jetty 10 server. My server setup code adds a number >>>> of >>>> ContextHandlers that each wrap a ResourceHandler to server static >>>> content on paths like /images and /scripts etc. Finally a single >>>> ServletContextHandler that wraps a ServletHolder is added at / to >>>> handle >>>> all other requests. >>>> >>>> This same setup code has been used through various Jetty versions (with >>>> some slight modifications for major version jumps) and has worked fine >>>> up until Jetty 10.0.6. But starting from Jetty 10.0.7 it no longer >>>> works >>>> because requests for the static contents all result in 404 errors. >>>> >>>> Did anything change in the 10.0.7 release that could explain this? I >>>> did >>>> not see anything in the change log that sounds remotely related but I >>>> could be wrong. >>>> >>>> Thanks, >>>> >>>> Silvio >>>> >>>> _______________________________________________ >>>> jetty-users mailing list >>>> jetty-users@eclipse.org >>>> To unsubscribe from this list, visit >>>> https://www.eclipse.org/mailman/listinfo/jetty-users >>>> >>> >>> _______________________________________________ >>> jetty-users mailing listjetty-us...@eclipse.org >>> To unsubscribe from this list, visit >>> https://www.eclipse.org/mailman/listinfo/jetty-users >>> >>> >>> _______________________________________________ >>> jetty-users mailing list >>> jetty-users@eclipse.org >>> To unsubscribe from this list, visit >>> https://www.eclipse.org/mailman/listinfo/jetty-users >>> >> >> _______________________________________________ >> jetty-users mailing listjetty-us...@eclipse.org >> To unsubscribe from this list, visit >> https://www.eclipse.org/mailman/listinfo/jetty-users >> >> >> _______________________________________________ >> jetty-users mailing list >> jetty-users@eclipse.org >> To unsubscribe from this list, visit >> https://www.eclipse.org/mailman/listinfo/jetty-users >> > > _______________________________________________ > jetty-users mailing listjetty-us...@eclipse.org > To unsubscribe from this list, visit > https://www.eclipse.org/mailman/listinfo/jetty-users > > > _______________________________________________ > jetty-users mailing list > jetty-users@eclipse.org > To unsubscribe from this list, visit > https://www.eclipse.org/mailman/listinfo/jetty-users >
_______________________________________________ jetty-users mailing list jetty-users@eclipse.org To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jetty-users