request - 从 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 标头。
推荐阅读
- c# - 编写程序查找数组中 Max 项的索引
- bash - bash 是否泄漏内存?
- vue.js - 当输入框达到一定长度时,我可以执行方法吗?
- visual-studio-2017 - lib 内置 vs c++ 2005 如何在 vs 2017 中使用它们?
- php - 我可以将包添加到没有 flex 配方的 Symfony 4 项目吗?
- javascript - Promise.all 甚至解决了我希望拒绝的一个 Promise 数组
- swift - 如何在应用程序包之外的 AVPlayer 中播放视频文件
- arrays - perl - 将数组的值放入数组中
- android - androidTest 的产品风味是什么
- html - Excel VBA 提取 Outlook 电子邮件正文 - 无法读取 html 内部文本电子邮件