我正在Karaf中构建Java网络服务器。我想知道http调用是否源自同一台计算机(=是本地计算机)。到目前为止,Referer
和Host
之类的Http标头在这方面对我有帮助。
该策略即查看标题中出现的URL是否读取localhost
。
此方法有哪些危险?还有更安全的方法吗?
答案 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的答案帮助我了解了细节。