The default url-pattern of `/` is a special url-pattern that has special
meaning to the ServletSpec (it belongs to the default servlet)

Have you implemented the other requirements of being a default servlet for
your specific servlet?

Perhaps you meant to put your servlet on `/*` instead?

Joakim Erdfelt / joa...@webtide.com


On Mon, Nov 29, 2021 at 10:09 AM Silvio Bierman <sbier...@jambo-software.com>
wrote:

> Hello Joakim,
>
> Adding a DefaultServletFilerServer Servlet on / is no good for us since we
> have our own Servlet there. But if I understand you correctly we should add
> a DefaultServletFileServer on the other context paths (/scripts, /images
> etc) instead of using the ContextHandler/ResourceHandler pairs.
>
> The features you mention are supported by our own Servlet for static
> content on different levels but although the static resources involved in
> this case are very small and never change that support would be nice to
> have here as well. I will look into it.
>
> Kind regards,
>
> Silvio
>
>
> On 11/29/21 16:09, Joakim Erdfelt wrote:
>
> 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 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

Reply via email to