security - Grails 在部署到云时获取客户端 IP?

标签 security grails ip cloud jelastic

我有一个 Grails 应用程序,我希望通过 IP 锁定它,以便只有多个 IP 范围可以访问该应用程序。我在 Config 中使用 Spring Security 命令来实现此目的:

grails.plugins.springsecurity.ipRestrictions

然后,当在云(Jelastic)中运行应用程序时,即使我位于我列出的 IP 之一上,它也不允许我访问我想要的区域。然后,我在下面所示的应用程序中添加一些代码来拉回客户端的地址,它显示的可能是云代理服务器的地址,而不是使用该应用程序的客户端的地址:

request.getRemoteAddr()

我认为它不会让我访问我想要的区域,因为它会将我的 IP 读取为云代理的 IP,我还尝试运行下面的命令来查看它们是否返回我的实际 IP,但是它们是全部为空:S

request.getHeader("X-Forwarded-For");  

request.getHeader("Proxy-Client-IP");  

request.getHeader("WL-Proxy-Client-IP") 

request.getHeader("HTTP_CLIENT_IP")

request.getHeader("HTTP_X_FORWARDED_FOR")

我只需要知道是否有某种方法可以通过客户端 IP 而不是使用云代理的 IP 来限制此应用程序在云中的运行?提前致谢

最佳答案

对 Jelastic 实例的所有请求都通过基础设施全局解析器发出。

所以,你是对的,request.getRemoteAddr() 返回解析器的 IP,但你的允许列表无法识别它。

解决此问题的方法是购买 external IP用于 Jelastic 中的应用程序服务器。在这种情况下,所有请求都将直接到达您的实例。

我还建议您加入专用的Jelastic Community以便分享您的经验并获得他人的帮助。

关于security - Grails 在部署到云时获取客户端 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142733/

相关文章:

javascript - 使用 javascript 确定 ip 在 chrome 中有效,在 firefox 或 ie 中无效

c# - pbkdf2_sha256 C# 实现

security - 限制(和记录)登录尝试的最佳方法

php - 是否有与 Java URL 过滤器/拦截器等效的 PHP?

grails - 修改和验证 grails 域对象而不保存它

networking - 将 L2TP 与 IPSec 一起使用有什么意义?

ubuntu - 无法在主机外部 ping 我的 docker 容器

security - "Same Origin Policy"可以给我们买什么?

html - Grails 2.5无法在js文件中找到图像路径

grails - 使用Grails Spring Security Rest插件登录时获取用户详细信息