gpt4 book ai didi

tomcat - 不同部署环境的默认 servlet 映射

转载 作者:行者123 更新时间:2023-11-28 22:05:49 26 4
gpt4 key购买 nike

我们想在 Tomcat、WebLogic、WebSphere 和 JBoss 上部署我们的应用程序。我们应用程序的 web.xml 需要包含到默认 servlet 的映射。

对于 Tomcat,此 servlet 被命名为“default”,因此我们的映射将显示为:

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/js/calendar/flexcal.html</url-pattern>
</servlet-mapping>

但在其他平台上它会发生变化(即 WebLogic 是“FileServlet”)。

有没有办法定义一个条件映射,它会根据可用的内容而改变?如果不是,我们应该如何处理这个问题?

谢谢!

最佳答案

没有办法。

您最好不要以任何方式显式映射到容器的默认 servlet。您不仅将您的 web 应用程序紧密耦合到特定容器,而且直到大约一年前,在 Tomcat 和克隆(JBoss、WebSphere 等)中执行此操作时还存在巨大的安全漏洞。它使攻击者能够在默认 servlet 映射到与 /。另见 issue 50026 , 由您真实报告。

而是将您的前端 Controller servlet 映射到更具体的 URL 模式而不是 /* 上,并在 /* 上创建和映射一个全局过滤器,它转发到前端 Controller 或根据当前请求 URI 继续默认 servlet。有关具体示例,请参见 How to access static resources when mapping a global front controller servlet on /* .

关于tomcat - 不同部署环境的默认 servlet 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9840275/

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