我正在几个JBoss 5.1实例中部署一堆.ear文件。现在,我需要将其中一个应用程序的访问权限限制为各种IP地址,具体取决于其托管服务器。应用程序的结构是
application.ear文件
| - > embedded .jar-file
| - >嵌入式.war-file
我知道如何通过编辑相关应用程序的WEB-INF/web.xml
来做到这一点,但我正在处理定期发生的自动部署,并且各种服务器之间的限制也不同。
所以我考虑在每台服务器上放置一个包含允许的IP地址的配置文件,并通过让我的应用程序读取这些地址并在JBoss start上相应地锁定自身来限制访问,这是一种可行的方法。但我找不到任何关于如何以编程方式限制对应用程序的访问的文档。
EJB安全 - 例如 - 是否能够做到这一点?
答案 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.*" />