Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security Tomcat:限制对本地主机的访问/仅限一个/webapp_Security_Tomcat_Webserver_Tomcat6 - Fatal编程技术网

Security Tomcat:限制对本地主机的访问/仅限一个/webapp

Security Tomcat:限制对本地主机的访问/仅限一个/webapp,security,tomcat,webserver,tomcat6,Security,Tomcat,Webserver,Tomcat6,我正在运行Tomcat6来服务几个web应用程序,其中大多数都是面向公众的。但我想限制对一个webapp的访问,只允许从localhost进行连接 我可以使用context.xml中的阀限制所有Web应用的访问,如中所述: 但我不知道如何限制每个应用的访问。有没有办法用我的应用程序的web.xml做到这一点?或者通过向context.xml添加其他规则 谢谢 -B 重述解决方案: $cp/var/lib/tomcat6/conf/context.xml\ /var/lib/tomcat6

我正在运行Tomcat6来服务几个web应用程序,其中大多数都是面向公众的。但我想限制对一个webapp的访问,只允许从localhost进行连接

我可以使用context.xml中的阀限制所有Web应用的访问,如中所述:

但我不知道如何限制每个应用的访问。有没有办法用我的应用程序的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.xml

这是Tomcat文档中关于上下文配置的摘录: 可以明确定义上下文元素:

  • $CATALINA_HOME/conf/context.xml文件中:所有webapps都将加载上下文元素信息。
    在
    $CATALINA_HOME/conf/[engineame]/[hostname]/context.xml.default
    文件中:该主机的所有webapps都将加载上下文元素信息
  • $CATALINA_HOME/conf/[engineame]/[hostname]/
    目录中的单个文件中(扩展名为
    .xml
    )。文件名(减去
    .xml
    )扩展名将用作上下文路径。可以使用
    #
    定义多级上下文路径,例如
    foo#bar.xml
    作为
    /foo/bar
    的上下文路径。可以使用名为
    ROOT.xml
    的文件定义默认web应用程序
  • 仅当
    $CATALINA_HOME/conf/[engineame]/[hostname]/
    中的应用程序不存在上下文文件时;在应用程序文件中的
    /META-INF/context.xml
    处的单个文件中。如果web应用程序打包为WAR,则
    /META-INF/context.xml
    将被复制到
    $CATALINA_HOME/conf/[engineame]/[hostname]/
    并重命名以匹配应用程序的上下文路径。一旦此文件存在,如果在主机的appBase中放置了具有更新的
    /META-INF/context.xml
    的新WAR,则不会替换该文件

    • 允许
      本地主机
      对我不起作用。我改用
      remoteaddrve
      。请记住,某些系统使用IPv4地址(您的筛选器必须匹配
      127.0.0.1
      ),而其他系统使用IPv6地址(匹配完整地址,而不是缩写符号,如
      ::1

      
      

      属性
      allow
      接受一个regexp,因此需要转义点。正如所述,这将在
      /META-INF/context.xml
      中转到以下路径:C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost\

      在此路径下可以找到“manager.xml”文件

      编辑“manager.xml”文件,包括以下内容:

        <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
         allow="127.0.0.1,10.100.1.2"/>
      
        <!-- Link to the user database we will get roles from
        <ResourceLink name="users" global="UserDatabase" 
          type="org.apache.catalina.UserDatabase"/>
        -->
      

      
      

      ******保存并运行服务器…您已经知道了。 注意:127.0.0.1表示您的系统IP 10.100.1.2-这是您的朋友

      上下文是“单个应用程序”。每一场战争都有它自己的背景。您使用的应用程序定义是什么?
      <Context>
          <Valve className="org.apache.catalina.valves.RemoteAddrValve"
                 allow="0:0:0:0:0:0:0:1,127\.0\.0\.1" />
      </Context>
      
        <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
         allow="127.0.0.1,10.100.1.2"/>
      
        <!-- Link to the user database we will get roles from
        <ResourceLink name="users" global="UserDatabase" 
          type="org.apache.catalina.UserDatabase"/>
        -->