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 당신의 serlvet 컨테이너 또는 애플리케이션 서버가 프록시 뒤에 가능성이 높습니다