Jakarta ee 未在应用程序服务器上接收Web服务器IP

Jakarta ee 未在应用程序服务器上接收Web服务器IP,jakarta-ee,Jakarta Ee,我们有一个基于J2EE的应用程序。下面是应用程序的体系结构 有两个Web服务器,一个用于internet,另一个用于intranet。请求来自浏览器,点击Web服务器并通过负载平衡器传递到应用服务器 从internet访问的应用程序通过internet WEB服务器到达应用程序服务器,而从Intranet访问时,请求通过Intranet WEB服务器到达应用程序服务器 有两组用户可以访问该应用程序 内部用户,仅允许从Intranet环境访问应用程序 外部用户,仅允许从Internet环境访问应用

我们有一个基于J2EE的应用程序。下面是应用程序的体系结构

有两个Web服务器,一个用于internet,另一个用于intranet。请求来自浏览器,点击Web服务器并通过负载平衡器传递到应用服务器

从internet访问的应用程序通过internet WEB服务器到达应用程序服务器,而从Intranet访问时,请求通过Intranet WEB服务器到达应用程序服务器

有两组用户可以访问该应用程序

内部用户,仅允许从Intranet环境访问应用程序 外部用户,仅允许从Internet环境访问应用程序
为了实现这一点,我们通过检查Web服务器的IP地址来验证请求源。为此,我们使用request.getRemoteAddr方法提取Web服务器的IP地址。但不幸的是,无论应用程序是从Internet访问还是从INTRANET访问,我们都只能获得INTRANET WEB服务器的IP地址

请说明原因以及如何纠正

我们正在考虑使用其他一些机制来区分到达应用程序服务器的请求和相应的源Web服务器。其他选择可能如下

在Web服务器上添加自定义标头 A.在这种方法中,将在Internet和Intranet Web服务器上添加自定义头 B一旦请求到达应用服务器,系统将检查报头值并确定从哪个Web服务器接收到请求 C根据第1.b点的结果,应用程序的可访问性将允许各自的用户使用 验证证书并区分请求基础证书 A.在这种方法中,Internet和Intranet Web服务器都有不同的证书 B一旦请求到达应用服务器,系统将检查证书并确定从哪个服务器收到请求 C根据第2.b点的结果,应用程序的可访问性将允许各自的用户使用 请建议上述解决方案是否可行,以及实施相同解决方案的机制

服务器的详细信息如下

Web服务器:Oracle Http服务器[Oracle Fusion中间件] 应用服务器:Oracle Weblogic 11g

我希望我能提供所有需要的详细信息。如果需要任何其他细节,请务必告诉我

我们将感谢你的帮助

感谢和问候,
Rahul Srivastava

但不幸的是,无论应用程序是从Internet还是从INTRANET访问,我们都只能获取INTRANET WEB服务器的IP地址。这不可能是真的。你确定你没有代理什么吗?我不这么认为,因为在应用服务器的访问日志中,我们也间歇性地接收到Internet Web服务器的IP地址,但仍然无法使用request.getRemoteAddr在Servlet中接收该地址。原因可能是什么?javadoc:getRemoteAddr返回发送请求的客户端或最后一个代理的Internet协议IP地址。您应该已经看到了internet服务器我不知道,可能尝试使用getRemoteHostohh等等,您可能获得了负载平衡器的ip