我正在开发一个 REST API,在某些情况下,我想确保请求来自后端 UI 中设置的已知 IP。我试过这个:
try {
URL url = new URL(allowedHostname);
InetAddress[] allowedIps = InetAddress.getAllByName(url.getHost());
for (InetAddress host : allowedIps) {
if (requesterIp.equals(host.getHostAddress())) {
return true;
}
}
} catch (UnknownHostException e) {
logger.warn("[validateHostname] ", e);
}
return false;
其中 allowedHostname = request.getRemoteAddr()
但这似乎不起作用。我不想只验证主机名,因为以另一台主机的名义发出请求相对容易。
编辑
requesterIp = request.getRemoteAddr()
allowedHostname = 在后端 UI 中设置的预定义 url