微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 Quarkus 内部获取请求者 IP 地址

如何解决从 Quarkus 内部获取请求者 IP 地址

所以让我首先尝试解释我需要什么和用例,这样就可以很容易地围绕我的请求:

我们正在构建一个基于 Quarkus 的投票系统,并且必须在某些条件下限制选民才能投票,例如他登记说他住在法国,但请求来自赞比亚。

为此,我们正在考虑获取请求的 IP 地址,并在 ip2location.com 的帮助下,我们计划确定选民的位置。 我看到的唯一一个关于获取 IP 地址的提及是在一个关于日志记录的示例代码中,我发现没有人能够从我要处理的代码获取它(在我们的例子中,获取 IP,调用 ip2location 服务,与数据库匹配,拒绝或验证投票)。

那么如何从使用 Quarkus 构建的应用程序内部获取该 IP 地址?

@Inject HttpServletRequest 或 @Inject HttpRequest 肯定不行。

问候, D.

解决方法

您可以使用:

   @Context
   HttpServerRequest request;

...


   request.remoteAddress();

在 JAX-RS 资源类中。

但如果您在代理后面,即使这样也不够。在这种情况下,您可能需要读取 X-Forwarded-For HTTP 标头。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。