gpt4 book ai didi

java - 使用 JRebel 6.0.0 部署时,在 Spring 4.1.2 更新后找不到资源

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:40 25 4
gpt4 key购买 nike

Spring 4.1.2(4.0.8 和 3.2.12)包含一个安全漏洞修复 SPR-12354防止 ResourceHttpRequestHandler (<mvc:resources> 后面的东西)从资源文件夹外部加载文件。

另一方面:是JRebel (我使用它的默认配置)。看起来 JRebel 做了一些魔术来加载资源,而不是从 wtp 文件夹中加载资源,而是直接从“源”文件夹中加载资源。

所以在从 Spring 3.2.11 升级到 3.2.12(以及其他类似的应用程序从 4.0.7 升级到 4.0.8)之后,Springs ResourceHttpRequestHandler不再交付由 JRebel“维护”的资源文件。取而代之的是传递 404。原因是 Spring 将配置的资源文件夹的绝对文件路径与将要传递的文件的绝对文件路径进行比较。如果ResourceHttpRequestHandler察觉到该文件在配置的资源文件夹之外,则假定用于选择该文件的 url 是恶意的。因此 ResourceHttpRequestHandler并返回 404 资源未找到的响应。

我希望 JRebel 可以配置为不“维护”js、png 和 css 文件,但我不知道如何配置。这就是问题:How to configure JRebel that a Spring MVC Application (v 4.0.8) still deliver Resources with ResourceHttpRequestHandler ?

(我预计几乎每个 JRebel 用户在升级到 Spring 4.1.2、4.0.8 或 3.2.12 后都会面临这个问题)。

(不要误会我的意思,这不是如何操作 Spring 不检查文件是否在配置资源文件夹之外的问题。我已经查看了源代码和观察到的行为是 Bug 修复的作者想要的行为。-这个问题是关于配置 JRebel)

最佳答案

感谢您非常好的问题描述!

看起来这个 Spring 更改将不兼容性引入了 JRebel。我来自 JRebel 团队,我会确保这个问题得到解决!

作为解决方法,您可以使用 <exclude>在你的 rebel.xml 中标记 <web>元素告诉 JRebel 不要触摸这些特定文件。这是有关如何配置它的更多信息 http://manuals.zeroturnaround.com/jrebel/standalone/config.html#exclude

其他更简单的解决方法是删除 <web>元素完全。

关于java - 使用 JRebel 6.0.0 部署时,在 Spring 4.1.2 更新后找不到资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26896900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com