如何以编程方式和基于IP的限制访问我的.war文件?

时间:2013-04-16 13:21:34

标签: java jboss limit

我正在几个JBoss 5.1实例中部署一堆.ear文件。现在,我需要将其中一个应用程序的访问权限限制为各种IP地址,具体取决于其托管服务器。应用程序的结构是

application.ear文件
 | - > embedded .jar-file
 | - >嵌入式.war-file

我知道如何通过编辑相关应用程序的WEB-INF/web.xml来做到这一点,但我正在处理定期发生的自动部署,并且各种服务器之间的限制也不同。

所以我考虑在每台服务器上放置一个包含允许的IP地址的配置文件,并通过让我的应用程序读取这些地址并在JBoss start上相应地锁定自身来限制访问,这是一种可行的方法。但我找不到任何关于如何以编程方式限制对应用程序的访问的文档。

EJB安全 - 例如 - 是否能够做到这一点?

1 个答案:

答案 0 :(得分:1)

我认为您的方案RemoteAddrValve适合使用。您可以通过在.WAR/WEB-INF/context.xml文件下添加IP地址来基于每个应用程序对此进行限制,也可以通过在deploy/jbossweb.sar/server.xml中对其进行配置来全局设置。阀门也支持正则表达式。

示例配置:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="1.1.1.2,1.1.1.3,1.1.4.*" />