【问题标题】:How can I limit access to a deployed application on JBoss 7 to localhost only?如何将 JBoss 7 上已部署应用程序的访问权限限制为仅限本地主机?
【发布时间】:2013-09-25 13:14:48
【问题描述】:

我有一个应用程序被拆分为多个可部署的工件,其中一个是 REST 服务,另一个是该 REST 接口的 Web 界面,依此类推。一位客户计划在他们的 DMZ 中部署它,并希望确保 REST 接口只能由同一个盒子上的应用程序访问。由于 web 应用程序(和其他应用程序)仍然需要可访问,显然不适合更改 JBoss 的侦听接口。

我尝试在 jboss-web.xml 中添加虚拟服务器,但这似乎不起作用。另一种可能性似乎是在 domain.xml 中使用重写模式,但这对我来说似乎不太适合,即使我可以让它工作。理想情况下,我想要的是特定于可部署工件的东西,它只允许从本地主机访问整个工件。

【问题讨论】:

    标签: jboss jboss7.x


    【解决方案1】:

    我在一个项目中有类似的要求,而虚拟服务器是恕我直言的唯一正确方法。

    你所要做的就是添加到standalone.xml/domain.xml:

      <virtual-server name="only-local">
                <alias name="localhost"/>
                <alias name="127.0.0.1"/>
      </virtual-server>
    

    然后到应用程序 jboss-web.xml 文件:

    <virtual-host>only-local</virtual-host>
    

    【讨论】:

      【解决方案2】:

      我认为您可以在应用程序的Context 配置中使用Valve。基本上你可以使用这样的东西:

      <Context ...>
        <Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=”127.0.0.1″/>
      ...
      </Context>
      

      更多信息可以在Tomcat config reference page for Valve找到。

      这个问题也有一些可能有用的例子: Tomcat Valve settings

      PS:这也适用于JBoss

      希望对您有所帮助。

      【讨论】:

        【解决方案3】:

        您可以在有人提到的 context.xml 中配置一个阀门。另一种方法是使用不同的 UI 端口。如果您还没有打开防火墙,您可以让 UI 和 REST API 监听不同的端口并打开防火墙。您想要配置防火墙规则,以便 REST API 端口只能接受来自 localhost 或环回接口。 UI 端口应该更能接受传入的请求。

        【讨论】:

          猜你喜欢
          • 2017-04-29
          • 2011-08-15
          • 2013-04-18
          • 1970-01-01
          • 1970-01-01
          • 2012-08-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多