如何将对JBoss 7上已部署应用程序的访问限制为仅本地主机?

如何将对JBoss 7上已部署应用程序的访问限制为仅本地主机?,jboss,jboss7.x,Jboss,Jboss7.x,我有一个分为多个可部署构件的应用程序,其中一个是REST服务,另一个是REST接口的web接口,等等。一位客户正计划在其DMZ中部署此功能,并希望确保REST界面只能由同一机箱中的应用程序访问。由于web应用程序(以及其他应用程序)仍然需要可访问,因此显然不适合更改JBoss的侦听接口 我曾尝试在jboss-web.xml中添加虚拟服务器,但这似乎不起作用。另一种可能是在domain.xml中使用重写模式,但这对我来说似乎不太合适,即使我可以让它工作。理想情况下,我想要的是特定于可部署工件的东西

我有一个分为多个可部署构件的应用程序,其中一个是REST服务,另一个是REST接口的web接口,等等。一位客户正计划在其DMZ中部署此功能,并希望确保REST界面只能由同一机箱中的应用程序访问。由于web应用程序(以及其他应用程序)仍然需要可访问,因此显然不适合更改JBoss的侦听接口


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

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

您只需添加到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>
仅本地

我认为您可以在应用程序的
上下文
配置中使用
阀。B实际上,您可以使用如下内容:

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

...
有关更多信息,请参阅

这个问题还有一些可能有用的例子:

PS:这也适用于JBoss


希望能有帮助

您可以在context.xml中配置某人已经提到的阀门。另一种方法是使用不同的UI端口。您可以让UI和REST API监听不同的端口,并在防火墙上切换(如果还没有)。您希望配置防火墙规则,以便REST API端口只能接受来自本地主机或环回接口的数据。UI端口应该更能接受传入的请求