一尘不染

Tomcat:限制对/ just one / webapp的本地主机访问

tomcat

我正在运行Tomcat 6,以服务于多个Web应用程序,其中大多数都是面向公众的。但是我 只想 限制对 一个 webapp的访问, _只_允许来自本地主机的连接。

但我不知道如何限制每个应用程序的访问。有没有办法使用我的应用程序的web.xml?还是通过向context.xml添加其他规则?

谢谢,

-B


翻盖解决方案:

$ cp /var/lib/tomcat6/conf/context.xml \ 
   /var/lib/tomcat6/conf/Catalina/localhost/my-app-name.xml

$ cat /var/lib/tomcat6/conf/Catalina/localhost/my-app-name.xml

<Context>
    <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="localhost"/>
... {as previously} ...
</Context>

阅读 342

收藏
2020-06-16

共1个答案

一尘不染

您可以为您的应用程序创建一个单独的context.xml。

这是来自Tomcat文档的上下文配置摘录:可以显式定义上下文元素:

  • $CATALINA_HOME/conf/context.xml文件中:Context元素信息将由所有webapp加载。在$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.default文件中:上下文元素信息将由该主机的所有webapp加载。
  • 在目录中的单个文件中(带有.xml扩展名)$CATALINA_HOME/conf/[enginename]/[hostname]/。文件名(减去.xml扩展名)将用作上下文路径。可以使用#,例如,foo#bar.xml针对的上下文路径来定义多级上下文路径/foo/bar。可以使用名为的文件来定义默认的Web应用程序ROOT.xml
  • 仅当;中不存在该应用程序的上下文文件时$CATALINA_HOME/conf/[enginename]/[hostname]/。在/META-INF/context.xml应用程序文件内部的单个文件中。如果Web应用程序打包为WAR,/META-INF/context.xml则将被复制并重$CATALINA_HOME/conf/[enginename]/[hostname]/命名以匹配应用程序的上下文路径。该文件存在后,如果/META-INF/context.xml在主机的appBase中放置了更新的WAR,将不会替换该文件。
2020-06-16