【问题标题】:Get the requester IP address from inside Quarkus从 Quarkus 内部获取请求者 IP 地址
【发布时间】:2021-05-14 19:53:45
【问题描述】:

所以让我先尝试解释一下我需要什么和用例,这样我的请求就很容易绕圈子了:

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

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

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

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

问候, D.

【问题讨论】:

    标签: request ip-address quarkus


    【解决方案1】:

    你可以使用:

       @Context
       HttpServerRequest request;
    
    ...
    
    
       request.remoteAddress();
    

    在 JAX-RS 资源类中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-10
      • 2012-04-23
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      相关资源
      最近更新 更多