gpt4 book ai didi

tomcat - 在tomcat webapp上阻止特定的骨灰盒

转载 作者:行者123 更新时间:2023-11-28 22:46:39 25 4
gpt4 key购买 nike

有特定需求,我们需要在网络应用程序下阻止特定的骨灰盒例如,我们有一个 Web 应用程序/siebel,在它下面/siebel/app/这应该可以工作,但是/siebel/smc 不应该

尝试在/META-INF 文件夹 context.xml 下提供上下文路径

<Context path="/siebel/smc" debug="0" privileged="true">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1"/>
</Context>

也试过

<Context antiJARLocking="true" path="/siebel/smc">
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1" />
</Context>

这最终会阻止 url/siebel/smc 和/siebel/app

也尝试在 server.xml 中添加上下文路径,结果相同。玩过 deny="*"的拒绝选项,但还是一样。

有什么办法可以解决这个问题吗?

谢谢

最佳答案

那好吧。您有正确的想法,但将其应用在错误的位置。 META-INF/context.xml 仅适用于它所在的 Web 应用程序,路径属性被忽略(路径将从 WAR/dir 名称派生)。

我假设您在 webapps/siebel.warwebapps/siebel 部署了一个 Web 应用程序,并且该 Web 应用程序的上下文路径是“/siebel” .

我们将利用 Servlet 规范的要求,即在将 URI 与 Web 应用程序、过滤器和 Servlet 进行匹配时,第一步是通过查找最长的匹配上下文路径来选择 Web 应用程序。因此,如果我们将新的 Web 应用程序部署到 /siebel/smc 并阻止所有访问,这应该会达到您想要的效果。

假设默认 Tomcat 安装(引擎和主机名不变)将以下内容放在 $CATALINA_BASE/conf/Catalina/localhost/siebel#smc.xml

<Context>
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny=".*"/>
</Context>

您还需要创建空目录 $CATALINA_BASE/webapps/siebel#smc

关于tomcat - 在tomcat webapp上阻止特定的骨灰盒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58118808/

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