在服务器端可靠地检测本地客户端

时间:2019-10-24 15:16:00

标签: java-ee apache-karaf

我正在Karaf中构建Java网络服务器。我想知道http调用是否源自同一台计算机(=是本地计算机)。到目前为止,RefererHost之类的Http标头在这方面对我有帮助。

该策略即查看标题中出现的URL是否读取localhost

此方法有哪些危险?还有更安全的方法吗?

1 个答案:

答案 0 :(得分:1)

amon在其评论中指出,可靠的方法是使用 javax.servlet.http.HttpServletRequest

import javax.ws.rs.core.Context;
import javax.servlet.http.HttpServletRequest; 

使用Context注释将HttpServletRequest注入代码:

@Context private HttpServletRequest req;

然后使用该对象从两个对象之一获取地址:

LOG.info("{}", req.getRemoteHost());
LOG.info("{}", req.getRemoteAddr());

This的答案帮助我了解了细节。

相关问题